暂无图片
oracle 11.2.0.1 windows 会话连接不活动
我来答
分享
hzdba
2021-01-29
oracle 11.2.0.1 windows 会话连接不活动

oracle 11.2.0.1 windows 会话连接不活动,现象会话端是jdbc请求界面一直在加载,在数据库上面看从这个jdbc服务器来的会话一直是INACTIVE状态,每请求一次inactive就增加一次。检查监听日志是正常连接建立,告警日志也是正常,就是请求的连接的都是inactive并且随着请求不断增加也不会释放掉。

我来答
添加附件
收藏
分享
问题补充
5条回答
默认
最新
JiekeXu
暂无图片

感谢 @文成 大哥指正,上个回复用的手机敲的有错误,DCD (Dead Connection Detection) ,不是数据同步工具 CDC 组件(Change Data Capture 改变数据捕获)。DCD 是用于检查那些死掉但没有断开的 session。

官方文档关于 Dead Connection Detection 的介绍请参考文档 “Dead Connection Detection (DCD) Explained (文档 ID 151972.1)”

RAC 环境一般设置在 Oracle 用户下的 sqlnet.ora 文件,
vi $ORACLE_HOME/network/admin/sqlnet.ora
SQLNET.EXPIRE_TIME=1

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

各位大佬指点一下。

暂无图片 评论
暂无图片 有用 0
你好我是李白

v$session status含义:
ACTIVE - Session currently executing SQL
INACTIVE
KILLED - Session marked to be killed
CACHED - Session temporarily cached for use by Oracle*XA
SNIPED - Session inactive, waiting on the client

也就是没有正在执行SQL,状态也不是其他的话,就是inactive,比如你使用任意客户端工具连接数据库,执行DML,然后一直不提交,也不回滚,事务处于活动,但是v$session status列会显示inactive状态。

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

没有执行任何操作所以是非活跃状态,至于没有释放非活跃状态的会话,可以在 JDBC 的连接池中设置超时连接时间,一般我都要求设置 180s, 另外一个也可以在数据库端的 sqlnet.ora 文件中配置 CDC 超时检测。

暂无图片 评论
暂无图片 有用 0
文成

更正一下楼下说的sqlnet.ora 设置是 DCD(Dead Connection Detection)设置

有些查询很快就返回结果了,但是tcp连接可能还保持连接的状态,有些应用连接池会定期发送sql保证连接是长连接,这些都可能导致连接的 inactive状态。
如果是inactive代表没有活动事务,查询结束了,如果前台显示不出内容可以在前台打印相关日志,查看到底是什么节点之间的慢。

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