ORA-609 with
TNS-12537: TNS:connection closed
We almost time receive an error such as ora-609 which shows
in alert log as
TNS- TNS-12537: TNS:connection closed
ns secondary err code: 12560
nt main err code: 0
nt secondary err code: 0
nt OS err code: 0
opiodr aborting process unknown ospid (12345) as a result of ORA-609
ns secondary err code: 12560
nt main err code: 0
nt secondary err code: 0
nt OS err code: 0
opiodr aborting process unknown ospid (12345) as a result of ORA-609
This error means could not attach to incoming
connection, so our database process was aborted or closed because incoming
connection was not passed to it by listener. In our case we found sqlnet error
stack as shown below
TNS-12537: TNS:connection
closed
It means the dedicated process didn’t have a client connection
anymore to work.
As we all know the process of client connections:
1. First
Client initiates a connection to the
database so it connects to the listener.
2. Then
listener starts a dedicated DB process that will receive this connection or
session.
3. After
that, this dedicate process is started and listener passes the connection from
the client to this process.
4. Then
the sever process takes the connection from the listener to continue the
handshake with the client.
5. After
that Server process and client exchange messages or information required for
establishing a session or user logon.
6. Then
the session is opened now.
In
our case, it may be when the dedicated process tries to communicate with the
client it finds that connection was closed.
Solution or
Work around:
We
can eliminate this error by increasing the value of SQLNET.INBOUND_CONNECT_TIMEOUT
in sqlnet.ora file.
By default the SQLNET.INBOUND_CONNECT_TIMEOUT value is 60
seconds.
The
sqlnet.ora file can be found in RDBMS_HOME/network/admin.
For example:
$ cd $ORACLE_HOME/network/admin
$vi sqlnet.ora
And change the value of SQLNET.INBOUND_CONNECT_TIMEOUT as:
SQLNET.INBOUND_CONNECT_TIMEOUT=300
Then
save the file.
There are many more possibilities which can cause this error
such as:
1. This can happen suppose our client closed the
connection immediately after initiating it.
2. This may occur
when firewall kill the connection.
3. Sometimes, it may happen because of Database, OS or network
performance problem.
4. This error may occur when some client crashes.
Hope this may also useful here:
Hope this may useful and helpful.
Please let us know for any concerns either by below comments or write to @contact us: https://ora-data.blogspot.in/
Regards,
ora-data Team
ora-data Team
ReplyDeleteHi Admin,
QLNET.INBOUND_CONNECT_TIMEOUT in sqlnet.ora file is clear here and thanks for info.
But what is INBOUND_CONNECT_TIMEOUT_listener and useful?
Thank you.
ReplyDeleteDear User,
Thank you visiting here and really appriciate your question.
Actually INBOUND_CONNECT_TIMEOUT_listener is a parameter in listener.ora file.
And we use this parameter to specify the time in seconds for the client to complete its connect request to the listener after the network connection had been established.
And if that listener does not receive the client request in the time specified in
INBOUND_CONNECT_TIMEOUT_listener parameter then it terminates the connection.
Hope above points clear your query.
I will post you a details n my next post soon about error log and ora alerts.
Thanks,
Hi- Thanks for creating this blog with good info!
ReplyDeleteDid you miss the S or it is parameter?
QLNET.INBOUND_CONNECT_TIMEOUT
or
SQLNET.INBOUND_CONNECT_TIMEOUT
Hi- Thanks for creating this blog with good info!
ReplyDeleteDid you miss the S or it is parameter?
QLNET.INBOUND_CONNECT_TIMEOUT
or
SQLNET.INBOUND_CONNECT_TIMEOUT
DeleteHi Abdul,
Thank you very much for notice it. You are right.
We have corrected it.
Regards,
ora-data Team