暂无图片
dblink超时问题
我来答
分享
cqiwen
2021-04-22
dblink超时问题

oracle数据库日志中偶尔报错:

Thu Apr 22 13:53:18 2021
Error 2396 trapped in 2PC on transaction 11.20.4427509. Cleaning up.
Error stack returned to user:
ORA-02396: 超出最大空闲时间, 请重新连接
ORA-02063: 紧接着 line (起自 LINK_EHOO)

注:(1)link_ehoo是配置的一个public dblink。其大概内容为:(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = XXXXXX)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))

(2)我检查目标数据库上user_profile中的 IDLE_TIME 是 UNLIMITED。
我直接连接到目标数据库(不通过dblink)不会出现过几分钟连接就断开的情况。

我在其它oracle主机上配置相同的dblink,做查询后,如果几分钟内不再使用这个dblink进行查询,等几分钟后再用到dblink查询时,客户端就无响应,过很长时间才会收到提示,说超出最大空闲时间。

问:有没有专门设置dblink超时的参数?

我来答
添加附件
收藏
分享
问题补充
5条回答
默认
最新
侯志清

可以尝试启动DCD
sqlnet.ora文件中添加sqlnet.timeout=xMin

暂无图片 评论
暂无图片 有用 0
cqiwen

在sqlnet.ora中也尝试过的,没有作用。
我想问下有没有可能是其它什么原因导致的dblink连接卡死呢?

暂无图片 评论
暂无图片 有用 0
付才魁

查查是否和防火墙有关

暂无图片 评论
暂无图片 有用 0
cqiwen

用的是阿里云ECS服务器。如果是防火墙问题,为什么我直接远程连接到数据库没有问题呢?只有dblink在几分钟不操作后,再次访问就会卡住

暂无图片 评论
暂无图片 有用 0
侯志清

可以测试每次执行了DBLINK后执行rollback 或者commit。 等几分钟后再次执行看看。最大可能是防火墙会中断非活动的TCP连接。

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏