应用告警ORA-12609
-
现象:
应用程序报错ORA-12609
-
排查
首先怀疑数据库层面的超时限制,但是检查数据库和监听参数均没有相关限制,继续检查问题时间段发现监听能正常连接,但是数据库实例没有异常断开的信息,即报错非数据库层面
考虑是个别现象,继续检查应用服务器发现其windows平台的oracle客户端的监听配置文件sqlnet.ora里有限制参数
SQLNET.RECV_TIMEOUT和SQLNET.SEND_TIMEOUT分别表示接收超时时间(单位秒)和发送超时时间(单位秒)。落实到当前环境,就是当业务锁等待时间超过10秒,就会发出报错ORA-12609。
定位为该参数造成的应用报错。 -
模拟
- 客户端sqlnet.ora按上图情况加上超时限制
- 新建一张表test,复制了dba_segment,然后去更新里面的内容,但是不提交
- 这时,同步更新test表内容,必然造成锁等待,超过10秒后就会报错
- 报错复现,验证完成
-
结论
该现象通过取消或延长客户端超时限制即可