参考文档:============================
Metalink doc: 465043.1
SR 7416319.994
问题描述: =================
Inbound connection timeout error.
解决方案 ===================
一:
检查sqlnet.log日志,查看是哪个session导致了timeout。
如果是开发人员的连接错误而不是应用服务器超时,则没有必要更改参数。
二:
设置两个参数:
1. In server side sqlnet.ora file add
SQLNET.INBOUND_CONNECT_TIMEOUT
For e.g
SQLNET.INBOUND_CONNECT_TIMEOUT = 120
2. In listener.ora file -
INBOUND_CONNECT_TIMEOUT_ = 110
For e.g if the listener name is LISTENER then -
INBOUND_CONNECT_TIMEOUT_LISTENER = 110
3. Reload Listener
如何设置这两个参数?
Set the value of the INBOUND_CONNECT_TIMEOUT_listener_name parameter to a lower value than the SQLNET.INBOUND_CONNECT_TIMEOUT parameter.
如果不设置这两个参数?
From 10.2.0.1, if neither of them is set. That means the timeout is the default value: 60 seconds.
如何检查现在的timeout时间?
$ date;telnet ndc-vwmscmp1 1521;date
Thu Apr 2 02:57:16 EDT 2009
Trying 10.15.88.247...
Connected to ndc-vwmscmp1.
Escape character is '^]'.
Connection closed by foreign host.
Thu Apr 2 02:58:16 EDT 2009
实例 ============================
10月21日下午03:33,alert log 出现 INBOUND CONNECTION TIMEOUT 错误:
10/21/09 03:33 PM PDT (Recorded At Alarm Time) Error in the alert log file for edip1, WARNING: inbound connection timed out (ORA-3136)
查看两个参数:
sqlnet.ora:INBOUND_CONNECT_TIMEOUT=0
listener.ora:NONE。
测试超时时间:(一分钟,是默认值)
[oracle@azhao-linux ~]$ date;telnet ndc-vedip1 1521;date
Wed Oct 21 19:12:56 PDT 2009
Trying 10.15.88.225...
Connected to ndc-vedip1.walmart.com (10.15.88.225).
Escape character is '^]'.
Connection closed by foreign host.
Wed Oct 21 19:13:56 PDT 2009
查看sqlnet.log日志:(发现在警告时间有session lost)
Fatal NI connect error 12170.
VERSION INFORMATION:
TNS for Solaris: Version 10.2.0.4.0 - Production
Oracle Bequeath NT Protocol Adapter for Solaris: Version 10.2.0.4.0 - Production
TCP/IP NT Protocol Adapter for Solaris: Version 10.2.0.4.0 - Production
Time: 21-OCT-2009 15:32:46
Tracing not turned on.
Tns error struct:
ns main err code: 12535
TNS-12535: TNS:operation timed out
ns secondary err code: 12606
nt main err code: 0
nt secondary err code: 0
nt OS err code: 0
Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=172.28.64.197)(PORT=1161))
经查,这个IP是从开发人员连过来。故不做任何参数更改。
测试 =====================================
在linux-box上,测试计划如下:
- 不设两个参数
- 只设定SQLNET.INBOUND_CONNECT_TIMEOUT = 12
- 只设定INBOUND_CONNECT_TIMEOUT_LISTENER = 3
- 设定INBOUND_CONNECT_TIMEOUT_LISTENER = 3并且SQLNET.INBOUND_CONNECT_TIMEOUT = 12
- 设定INBOUND_CONNECT_TIMEOUT_LISTENER = 12 并且SQLNET.INBOUND_CONNECT_TIMEOUT = 3
- 设定INBOUND_CONNECT_TIMEOUT_LISTENER = 3并且SQLNET.INBOUND_CONNECT_TIMEOUT = 0
- 设定INBOUND_CONNECT_TIMEOUT_LISTENER = 0并且SQLNET.INBOUND_CONNECT_TIMEOUT = 3
- 都设定为0
每次更改后,都lsnrctl reload.
测试结果:
- 60
- 60
- 3
- 3
- 12
- 3
- no limit
- no limit
测试结论:
- 真正起作用的是INBOUND_CONNECT_TIMEOUT_参数
- 如果INBOUND_CONNECT_TIMEOUT_ =0, 则无超时限制
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8684388/viewspace-617149/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/8684388/viewspace-617149/