Few days back we get an issue Inbound connection timed out (ORA-3136) in alert log. To troubleshoot this we need to dig into sqlnet.ora file and the alert log.
- Check the alert log file and check from where the connection comes.
- Check the listener is up & running.
- Ping the server,make sure tnsping is working.
- Increase inbound_connect_timeout
Regarding this we need to checked the value of “inbound_connect_timeout”.
LSNRCTL> show inbound_connect_timeout
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
LISTENER parameter “inbound_connect_timeout” set to 120
The command completed successfully
Here we can see that time is set to 120 which is ok.
The following would be the most likely reasons for this error :
1.Server gets a connection request from a malicious client which is not supposed to connect to the database. In this case the error thrown would be the expected and desirable behaviour. You can get the client address for which the error was thrown in the sqlnet.log file that is local to the database.
2.The server receives a valid client connection request but the client takes a long time to authenticate more than the defined timeout.
3.The DB server is heavily loaded due to which it cannot finish the client logon within the timeout specified.
By default, the SQLNET.INBOUND_CONNECT_TIMEOUT is set to 60 seconds.
You can change the setting by adding the parameters SQLNET.INBOUND_CONNECT_TIMEOUT and INBOUND_CONNECT_TIMEOUT_<listener name> to the $ORACLE_HOME/network/admin/sqlnet.ora file on the database server.
Setting the above parameters to a value of 0 implies an infinite time out.
Alternatively, you can use the lsnrctl command and issue the following:
LSNRCTL> set inbound_connect_timeout=<value>
Before opting for the above parameter changes, confirm that any firewall activity or Network Address Transalation (NAT) that may be occuring beween the client and and the database are not the cause of latency which is exceeding the timeout threshold.
To identify the listener name and ORACLE_HOME and sqlnet.ora file we can use the below command.
[oracle@racdbq1.dcb.ichotels.com] ps -eaf|grep tns