Saturday, March 13, 2010

ORA-3136 WARNING : Inbound Connection Timed Out in alert log


Oracle Database 10.2 to onwards the default value of this parameter 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.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 following main causes/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.

The default value of 60 seconds is good enough in most conditions for the database server to authenticate a client connection. If its taking longer period, then its worth checking all the below points before going for the workadound:

1. Check whether local connection on the database server is sucessful & quick.
2. Check antivirous, firewall, ensore its not preventing clients applications, which requied database connectivity
3. If local connections are quick ,then check for underlying network delay with the help of your network administrator.
4. Check whether your Database performance has degraded by anyway.
5. 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.

Solution: metalink note: 793259.1 & 465043.1

In server side sqlnet.ora file add following:
SQLNET.INBOUND_CONNECT_TIMEOUT = 120


In listener.ora file add following:
INBOUND_CONNECT_TIMEOUT_LISTENER = 110