请求池中的客户端超时

2020-08-18 09:53发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我正在尝试为我的一个...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我正在尝试为我的一个实体实施一些其他验证。 我注册了以下代码:

 this.before('UPDATE','Activities',async req => {
         const db = cds.connect.to('db');
         const service = new ActivityService(db);
         ErrorProcessor.processMsgs(req,等待service.updateCommand(req.data));
     }); 

在该方法updateCommand的一边,我需要从数据库检索一些记录。 例如。 像这样的东西:

 const {活动} = this._db.entities;
         const结果=等待
             this._db.read(Activities).where({ID:ID}); 

当我尝试执行任何查询时,出现以下错误:

从池中请求客户端超时。 最大池大小为1,当前池大小为1。增加" acquireTimeoutMillis"以延长等待时间,或增加" max"以创建更多客户端。

似乎无法获得到SQLite DB的客户端连接。 为什么会这样呢? 我无法执行对sqlite DB的附加请求,这是我做错了什么? 当然,这应该是可能的。 我正在为CREATE操作做类似的事情,没有问题。

4条回答
土豆飞人
2020-08-18 10:29 .采纳回答

嗨,马丁,

仅通过错误消息,我猜是:

如果使用sqlite,默认情况下,数据库连接池只有一个连接。 当您尝试读取"活动"时,会从池中请求一个新的连接并超时,因为传入的请求已经先请求了一个。

请通过在初始化时提供请求上下文来确保为传入请求加入现有事务( https://cap.cloud.sap/docs/node.js/api#cds-transaction )。

最诚挚的问候,

Johannes

一周热门 更多>