TNS-12535: TNS:operation timed out TNS-00505: Operation timed out

TNS-12535 TNS-00505 经常出现很多这种报错 

Problem Description 
--------------------------------------------------- 
查看alert警告日志,经常发现很多如下报错 
Mon Nov 09 18:40:11 2015 


*********************************************************************** 

Fatal NI connect error 12170. 

VERSION INFORMATION: 
TNS for Linux: Version 11.2.0.4.0 - Production 
Oracle Bequeath NT Protocol Adapter for Linux: Version 11.2.0.4.0 - Production 
TCP/IP NT Protocol Adapter for Linux: Version 11.2.0.4.0 - Production 
Time: 09-NOV-2015 18:40:11 
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: 110 
nt OS err code: 0 

Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=10.0.105.11)(PORT=60866)) 


问题解决:

如下文档解释了这个错误 
Fatal NI Connect Error 12170, 'TNS-12535: TNS:operation timed out' Reported in 11g Alert Log ( Doc ID 1286376.1 ) 
Alert Log Errors: 12170 TNS-12535/TNS-00505: Operation Timed Out ( Doc ID 1628949.1 ) 

基本上这是一个告知性的消息。它的意思是说 
The messages indicate the specified client connection (identified by the 'Client address:' details) has experienced a time out. 

通常是由于客户端发起的连接没有经过正常的流程结束引起的。一个常见的场景是,从客户端连接数据库,比如通过plsql工具,连上之后,很久没有操作, 
然后网络防火墙发现了这个空闲的连接超过了设置的允许时间,于是中断了它。数据库端就会记这个错误。比较糟糕的一种情况是,发起一个非常长时间的查询, 
数据库由于要运行很久才会给客户端发送回复,结果超过了防火墙允许的时间,于是被中断了。 

所以关键在于您的应用方面是否有异常,如果应用方面正常,那么也可以不必管它。 
一个常用的解决方式是在$ORACLE_HOME/network/admin下的sqlnet.ora文件中设置 

SQLNET.EXPIRE_TIME=n Where <n> is a non-zero value set in minutes. 

比如 
SQLNET.EXPIRE_TIME=3 

设置这个参数后,Oracle服务器会每隔n分钟向所有的客户端连接发送一个非常小的侦测包,大约10byte,这个侦测包本身构成了连接上的活跃通讯,从而避免防火墙认为这个连接是空闲的。 

如果设置了这个参数,仍然有错误,而且非常频繁的话,那么可以考虑检查一下报错的客户端地址,看该客户端上有什么应用会导致这个异常? 





阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/EVISWANG/article/details/49908363
个人分类: Listener
下一篇TNS-12547: TNS:lost contact TNS-12537: TNS:connection closed as a result of ORA-609
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭