Вы находитесь на странице: 1из 3

Troubleshooting ORA - 3136 WARNING Inbound Connection Timed Out [ID 465043.

1] Modified 17-MAY-2009 In this Document Purpose Last Review Date Instructions for the Reader Troubleshooting Details References Type TROUBLESHOOTING Status PUBLISHED

Applies to:
Oracle Net Services - Version: 10.2.0.1.0 Information in this document applies to any platform.

Purpose
Troubleshooting guide for "ORA -3136 WARNING inbound connection timed out" seen in the alert log.

Last Review Date


November 17, 2008

Instructions for the Reader


A Troubleshooting Guide is provided to assist in debugging a specific issue. When possible, diagnostic tools are included in the document to assist in troubleshooting.

Troubleshooting Rate this document Details


The "WARNING: inbound connection timed out (ORA-3136)" in the alert log indicates that the client was not able to complete it's authentication within the period of time specified by parameter SQLNET.INBOUND_CONNECT_TIMEOUT. You may also witness ORA-12170 without timeout error on the database server sqlnet.log file. This entry would also have the client address which failed to get authenticated. Some applications or JDBC thin driver applications may not have these details. From 10.2.0.1 onwards the default value of parameter SQLNET.INBOUND_CONNECT_TIMEOUT is 60 seconds, hence if the client is not able authenticate within 60 secs , the warning would appear in the alert log and the client connection will be terminated. Note: This timeout restriction was introduced to combat Denial of Service (DoS) attack whereby malicious clients attempt to flood database servers with connect requests that consumes resources.

There can be three main reasons for this error 1. Server gets a connection request from a malicious client which is not supposed to connect to the database , in which case the error thrown is the correct behavior. You can get the client address for which the error was thrown via sqlnet log file. 2. The server receives a valid client connection request but the client takes a long time to authenticate more than the default 60 seconds. 3. The DB server is heavily loaded due to which it cannot finish the client logon within the timeout specified. To understand what is causing this issue, following checks can be done The default value of 60 seconds is good enough in most conditions for the database server to authenticate a client connection. If it is taking longer, then its worth checking all the below points before going for the workaround:

1 of 3

2011-03-31 15:23

1. Check whether local connection on the database server is successful & quick. 2. If local connections are quick ,then check for underlying network delay with the help of your network administrator. 3. Check whether your Database performance has degraded in anyway. 4. Check alert log for any critical errors for eg, ORA-600 or ORA-7445 and get them resolved first. These critical errors might have triggered the slowness of the database server. As a workaround to avoid only this warning messages, you can set the parameters SQLNET.INBOUND_CONNECT_TIMEOUT and INBOUND_CONNECT_TIMEOUT_<listenername> to the value more than 60. For e.g 120. So that the client will have more time to provide the authentication information to the database. You may have to further tune these parameter values according to your setup. To set these parameter 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_<listenername> = 110 For e.g if the listener name is LISTENER then INBOUND_CONNECT_TIMEOUT_LISTENER = 110

From Oracle version 10.2.0.1 onwards the default value of INBOUND_CONNECT_TIMEOUT_<listenername> is 60 seconds. For previous releases it is zero by default. How to check whether inbound timout is active for the listener and database server For eg. INBOUND_CONNECT_TIMEOUT_<listener_name> =4 You can check whether the parameter is active or not by simply doing telnet to the listener port. $ telnet <database server IP> <listener port> for eg.
$ telnet 192.168.12.13 1521

The telnet session should disconnect after 4 seconds which indicates that the inbound connection timeout for the listener is active. To check whether database server sqlnet.inbound_connect_timeout is active: Eg.
sqlnet.inbound_connect_timeout =5

a. For Dedicated server setup, enable the support level sqlnet server tracing will show the timeout value as below:
niotns: Enabling CTO, value=5000 (milliseconds) <== 5 seconds niotns: Not enabling dead connection detection. niotns: listener bequeathed shadow coming to life...

2 of 3

2011-03-31 15:23

b. For shared Server setup, $ telnet <database server IP> <dispatcher port> For eg.
$ telnet 192.168.12.13 51658

The telnet session should disconnect after 5 seconds which indicates that the sqlnet.inbound_connect_timeout is active.

If you have further question / query regarding this issue then please create Service Request via metalink with following information: a. Client and matching server sqlnet trace generated at support level. Note 395525.1 How to Enable Oracle Net Client,Server,Listener,Kerberos and External procedure Tracing from Net Manager (netmgr): Note 374116.1 How to Match Oracle Net Client and Server Trace Files b. upload sqlnet.ora, listener.ora Sqlnet.log, & Alert_<sid>.log from database server

References
NOTE:730066.1 - Diagnosis of ORA-3135/ORA-3136 Connection Timeouts when the Fault is in the Database

Related Products Oracle Database Products > Oracle Database > Net Services > Oracle Net Services Keywords SQLNET.LOG; DATABASE PERFORMANCE; AUTHENTICATION; DENIAL OF SERVICE; SQLNET.INBOUND_CONNECT_TIMEOUT; CONNECTION TIMED OUT; SQLNET.LOG Errors ORA-7445; ORA-12170; ORA-3136

Back to top Copyright (c) 2007, 2010, Oracle. All rights reserved. Legal Notices and Terms of Use | Privacy Statement

3 of 3

2011-03-31 15:23

Вам также может понравиться