Sunday, May 14, 2017

Fatal NI connect error 12537

This error may appear in the alert log file. Following is the snippet from the alert log file.
Fatal NI connect error 12537, connecting to:
 (LOCAL=NO)

  VERSION INFORMATION:
            TNS for Linux: Version 11.2.0.4.0 - Production
            Oracle Bequeath NT Protocol Adapter for Linux: Version 11.2.0.4.0 - Production
            TCP/IP NT Protocol Adapter for Linux: Version 11.2.0.4.0 - Production
  Time: 15-MAY-2017 09:52:12
  Tracing not turned on.
  Tns error struct:
    ns main err code: 12537
   
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 (24830) as a result of ORA-609
Mon May 15 10:19:04 2017
Warning: VKTM detected a time drift.
Time drifts can result in an unexpected behavior such as time-outs. Please check trace file for more details.
Mon May 15 11:27:57 2017
Warning: VKTM detected a time drift.
Time drifts can result in an unexpected behavior such as time-outs. Please check trace file for more details.
Mon May 15 11:51:06 2017


***********************************************************************

Fatal NI connect error 12537, connecting to:
 (LOCAL=NO)

  VERSION INFORMATION:
            TNS for Linux: Version 11.2.0.4.0 - Production
            Oracle Bequeath NT Protocol Adapter for Linux: Version 11.2.0.4.0 - Production
            TCP/IP NT Protocol Adapter for Linux: Version 11.2.0.4.0 - Production
  Time: 15-MAY-2017 11:51:06
  Tracing not turned on.
  Tns error struct:
    ns main err code: 12537
   
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 (24273) as a result of ORA-609

This is because of connection closed by the database server because client could not complete the request of session and database server dropped the connection/session. This happens during initial phase of session when client and server processes are communicating and shaking hands after authentication of the client. There can be several reasons for this. One reason could be that client itself aborted (i.e. client rebooted, or network disconnection), another reason could be that database server was too busy and could not complete connection request timely and client disconnected before session could be established. There could be several of other reasons.
Adding parameter SQLNET.INBOUND_CONNECT_TIMEOUT in sqlnet.ora file and INBOUND_CONNECT_TIMEOUT_listener_name in listener.ora file can help us eradicating these errors. Values of these parameters are in number of seconds. Suppose if we set the values to 60, it would mean that database/listener would wait for 60 seconds time during which client can be authenticated before dropping the session request and logging error in the alert log file (as shown above). After setting these parameters, reload the listener (lsnrctl reload <listener_name>).
If adding these parameters does not solve your problem, you may seek help of oracle support by submitting trace files (after enabling sql trace).
These errors could also be suppressed by adding following parameter in the sqlnet.ora file

DIAG_ADR_ENABLED = OFF

--Reload the listener after adding above line.
lsnrctl reload <listener_name>
 Now these errors should not appear in alert log file, and should go to sqlnet.log instead that can be further used for investigating about these errors.


No comments:

Post a Comment