Why Oracle DB related error like 'Error - Fatal NI connect error' are getting generated ?

Solution Verified - Updated -

Environment

  • Red Hat Enterprise Linux 6
  • Red Hat Enterprise Linux 7
  • Oracle DB

Issue

  • Oracle team is getting error like below:
Fatal NI connect error 12170.

  VERSION INFORMATION:
        TNS for Linux: Version 11.2.0.3.0 - Production
        Oracle Bequeath NT Protocol Adapter for Linux: Version 11.2.0.3.0 - Production
        TCP/IP NT Protocol Adapter for Linux: Version 11.2.0.3.0 - Production
  Time: 22-MAY-2014 11:07:05
  Tracing not turned on.
  Tns error struct:
    ns main err code: 12535

TNS-12535: TNS:operation timed out
    ns secondary err code: 12560
    nt main err code: 505

TNS-00505: Operation timed out
    nt secondary err code: 110
    nt OS err code: 0
  Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=xx.xx.xxx.xx)(PORT=xxxxx))

Resolution

  • The error/logs are DB logs only not something generated by RHEL OS.
  • To get the exact meaning of error messages, it is recommended to contact the concerned vendor.
    The vendor can assist in generating sql traces and locating listener logs to locate exactly where the connection timed out.

  • If the issue has passed and not occurring in the present, packet captures taken at time of issue from both sides of the connection would be needed for Root Cause Analysis.
    If no pcaps are taken, a Root Cause analysis will not be possible.
    Alternatively you may seek to contact the vendor for gathering Listener logs and switch drop logs.

  • After working with the vendor, the following settings have resolved the issue for previous issues and the error messages were no longer seen. These settings will need to coordinated with the vendor.


Adjust the database `sqlnet.ora` file :

SQLNET.EXPIRE_TIME=10
SQLNET.INBOUND_CONNECT_TIMEOUT=60


Tweak the DATASOURCES section :

Login to weblogic console:
Then go to console --> services --> data sources --> [DATASOURCENAME] --> Configuration --> connection pool

confirm default settings for initial,minimum,maximum capacity
initial:1
minimum: 15
maximum capacity: 1


Then click on the advanced link on the same page and set parameters:

inactive connection timeout = 30
uncheck Remove Infected Connections Enabled

This changes the number of seconds of inactivity after which reserved connections will forcibly be released back into the pool. When set to 0 (the default), this feature is disabled.
~~~

Root Cause

  • This message indicates that the Client has experienced a timeout connected to the server.
  • The message nt secondary err code: 110 translates to (network transport) for the Linux Operating System
For the Linux operating system: nt secondary err code: 110
ETIMEDOUT 110 Connection timed out

Diagnostic Steps

  • For more information about tweaking Oracle Weblogic Servers the following link could be used as a guide but only with more consultation with your vendor
    Oracle Tuning Guide

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.