[XS高级] HDBEXT-pool.acquire()期间出错

2020-08-31 16:28发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 在我们的项目中,我们...

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

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


大家好,

在我们的项目中,我们有一个NodeJS应用程序,该应用程序通过节点模块" sap-hdbext"连接到HANA数据库。 就像在有关此问题的几个示例中一样,我们使用ExpressJS作为我们的REST接口。
将HDB-中间件连接到Express的代码如下:

然后在快速路由中,我们使用" var db = req.db"从中间件获取数据库会话。 这样我们就可以调用db.exec(...),依此类推。 到目前为止,一切正常……至少在大多数情况下。 有时,我们在调用其中一条路由时会收到以下错误消息:

„错误:SAP_HDBEXT MIDDLEWARE:pool.acquire()期间出错:{" message":"无法通过SET命令设置预定义的会话变量:XS_APPLICATIONUSER"," code":455," sqlState": " HY000","级别":1,"位置":0,"状态":500}

错误:无法通过SET命令:XS_APPLICATIONUSER"设置预定义的会话变量

因此express显然无法从sap-hdbext提供的中间件检索连接。 重新启动或重新部署应用程序无济于事,它通常会使用创建数据库会话的方法影响所有NodeJS应用程序。 它并不总是一次会影响所有用户,但确实会在不引起任何人注意的情况下偶尔发生在每个用户身上。

通常在几个小时后或第二天,一切正常,而无需进行任何更改。

有人遇到过同样的问题,或者有想法起源吗?

感谢您的帮助!

最好的问候

Henrik Lawall

(151.7 kB)