最近在$ORACLE_HOME/network/admin/log 下的sqlnet.log文件里,不断发现异常error:
***********************************************************************
Fatal NI connect error 12170.
VERSION INFORMATION:
TNS for Solaris: Version 10.2.0.1.0 – Production
Oracle Bequeath NT Protocol Adapter for Solaris: Version 10.2.0.1.0 – Production
TCP/IP NT Protocol Adapter for Solaris: Version 10.2.0.1.0 – Production
Time: 1-MAR-2009 18:42:58
Tracing not turned on.
Tns error struct:
ns main err code: 12535
TNS-12535: TNS:operation timed out
ns secondary err code: 12560
nt main err code: 505
TNS-00505: Operation timed out
nt secondary err code: 145
(Look up error number 145 in /usr/include/sys/errno.h )
nt OS err code: 0
Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=10.221.70.83)(PORT=4032))
***********************************************************************
通过client address可以查询到时应用服务器的地址,从listener.log里可以查到此session的链接时间,大部分都是4-6个小时左右,断开。客户端没有人报告异常,也没有客户反应链接不到数据库,那为什么会出现这个timed out的异常告警呢?如果没有问题的话,不应该会平白无故的告警的?
在网上查询到相关资料,怀疑是防火墙设置问题:
This is indicative of a client connection being dropped. This can be the result of firewall dropping connections per the firewall policy of idle sessions. The workaround for this can be done as follows:
“For Oracle databases, SQLNET.EXPIRE_TIME can be used. Although SQLNET.EXPIRE_TIME was intended as a dead connection detection (DCD) method, a side effect of sending probe packets between the database server and client/application server is that the connection remains active. Set the SQLNET.EXPIRE_TIME to less than the firewall timeout and the problem is solved.”
参考链接: 1. http://scatteredreads.wordpress.com/2009/11/03/tns-12535-tnsoperation-timed-out/
2. http://hpdba.wordpress.com/tag/keep-alive/
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9252210/viewspace-628581/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9252210/viewspace-628581/