Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ORACLE : Io exception: The Network Adapter could not establish the connection

We are getting this error sporadically. With the same TNS, we are able to make proper connections to the database. But we see this in the logs while make connections some times. Following is the stack trace. This is db connection to Oracle from a Linux machine and java application Any help is appreciated.

java.sql.SQLException: Io exception: The Network Adapter could not establish the connection at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255) at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387) at oracle.jdbc.driver.PhysicalConnection.(PhysicalConnection.java:439) at oracle.jdbc.driver.T4CConnection.(T4CConnection.java:165) at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801) at oracle.jdbc.pool.OracleDataSource.getPhysicalConnection(OracleDataSource.java:297) at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:221) at oracle.jdbc.pool.OracleConnectionPoolDataSource.getPhysicalConnection(OracleConnectionPoolDataSource.java:157) at oracle.jdbc.pool.OracleConnectionPoolDataSource.getPooledConnection(OracleConnectionPoolDataSource.java:94) at oracle.jdbc.pool.OracleImplicitConnectionCache.makeCacheConnection(OracleImplicitConnectionCache.java:1567) at oracle.jdbc.pool.OracleImplicitConnectionCache.getCacheConnection(OracleImplicitConnectionCache.java:478) at oracle.jdbc.pool.OracleImplicitConnectionCache.getConnection(OracleImplicitConnectionCache.java:347) at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:404) at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:189) at oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.java:165)

like image 604
Java Guy Avatar asked Feb 02 '23 14:02

Java Guy


2 Answers

try following

  1. (obvious) IP address is incorrect - try PING
  2. The port is not open, or is blocked by a firewall - try TELNET
  3. The DB listener is not running or is binding to a different network interface - again, TELNET should confirm this (also use Oracle client tools to connect)
  4. No local ports are available for the out-going connection (unlikely) - only if you're making thousands of connections, or creating hundreds of new connections every minute.
like image 105
Damith Avatar answered Feb 05 '23 15:02

Damith


Seems the connection pool runs out of connections... When DBMS listener's incoming request buffer is overloaded by many simultaneous connection requests. It will fail some of them.

you can have the thread sleep a bit (half-second to a second or so) between successive connection requests. After that, don't close connections until they're broken. Keep them and re-use them.

like image 45
Maxwell Cheng Avatar answered Feb 05 '23 15:02

Maxwell Cheng