关闭

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

1244人阅读 评论(0) 收藏 举报
分类:
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,这个侦测包本身构成了连接上的活跃通讯,从而避免防火墙认为这个连接是空闲的。 

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





0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:150270次
    • 积分:4322
    • 等级:
    • 排名:第7271名
    • 原创:295篇
    • 转载:0篇
    • 译文:1篇
    • 评论:2条
    文章分类
    最新评论