gpt4 book ai didi

node.js - 空闲 Oracle 连接出现错误 'ORA-03114: not connected to ORACLE'

转载 作者:行者123 更新时间:2023-12-02 19:02:42 25 4
gpt4 key购买 nike

我们有一个连接到 Oracle 数据库实例的 Node.js Web 应用程序,问题是经过一段时间的不活动后,数据库的连接会变成只读模式。这意味着 SELECT 操作有效,但 INSERT 和 UPDATE 事务遇到此错误:

"Error: ORA-03114: not connected to ORACLE"

重新启动应用程序后此问题解决。我们使用最新版本的knex(0.20.1)和node-oracledb(4.1.0)库来连接数据库。

最佳答案

该错误意味着某些东西(可能是防火墙)已使连接过期。你应该找出原因并消除它。可能有一些解决方法,例如配置 Oracle Net 层以通过网络偶尔发送 ping 来阻止空闲连接被终止,请参阅 https://oracle.github.io/node-oracledb/doc/api.html#connectionha

查询和 DML 都将同样受到出现错误的连接的影响 - 全部都会失败。我怀疑您正在使用不同的(新的)连接进行查询。

如果您使用 19c 客户端库(顺便说一下,它连接到 Oracle DB 11.2 或更高版本),那么您的连接字符串可以使用 Easy Connect 语法,例如:

"mydbmachine.example.com/orclpdb1?expire_time=2"

这将对空闲连接执行保持事件操作,每两分钟发送一次探测。一般建议是将时间段设置为小于连接终止时间(例如通过防火墙)的一半。请参阅技术文章 Oracle Database 19c Easy Connect Plus Configurable Database ConnectionSyntax .

其他语法可以在旧版本中使用,或者在 tnsnames.ora 文件中使用;检查文档。

关于node.js - 空闲 Oracle 连接出现错误 'ORA-03114: not connected to ORACLE',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59508878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com