应用告警ORA-12609

  • 现象:
    应用程序报错ORA-12609
    file

  • 排查
    首先怀疑数据库层面的超时限制,但是检查数据库和监听参数均没有相关限制,继续检查问题时间段发现监听能正常连接,但是数据库实例没有异常断开的信息,即报错非数据库层面
    考虑是个别现象,继续检查应用服务器发现其windows平台的oracle客户端的监听配置文件sqlnet.ora里有限制参数
    file
    SQLNET.RECV_TIMEOUT和SQLNET.SEND_TIMEOUT分别表示接收超时时间(单位秒)和发送超时时间(单位秒)。落实到当前环境,就是当业务锁等待时间超过10秒,就会发出报错ORA-12609。
    定位为该参数造成的应用报错。

  • 模拟

    1. 客户端sqlnet.ora按上图情况加上超时限制
    2. 新建一张表test,复制了dba_segment,然后去更新里面的内容,但是不提交
      file
    3. 这时,同步更新test表内容,必然造成锁等待,超过10秒后就会报错
      file
    4. 报错复现,验证完成
  • 结论
    该现象通过取消或延长客户端超时限制即可

Related Posts