web-dev-qa-db-ja.com

ORACLE:Io例外:ネットワークアダプターが接続を確立できませんでした

このエラーは散発的に発生しています。同じTNSを使用して、データベースに適切に接続できます。しかし、時々接続を行っている間、これがログに表示されます。スタックトレースは次のとおりです。これはLinuxマシンからのOracleへのdb接続であり、Java applicationです。

Java.sql.SQLException:Io例外:ネットワークアダプターはOracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.Java:112)at Oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.Java:146)で接続を確立できませんでした)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 )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 )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)Oracle.jdbc.pool.OracleConnectionPoolDataSourcでe.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 Oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.Java:404)at Oracle.jdbc.pool.OracleDataSource.getConnection(OracleDataSource.Java:189)at Oracle.jdbcの.OracleImplicitConnectionCache.getConnection(OracleImplicitConnectionCache.Java:347)。 pool.OracleDataSource.getConnection(OracleDataSource.Java:165)

9
Java Guy

フォローしてみてください

  1. (自明)IPアドレスが正しくない-PINGを試す
  2. ポートが開いていないか、ファイアウォールによってブロックされています-TELNETを試してください
  3. DBリスナーが実行されていないか、別のネットワークインターフェースにバインドしています-再度、TELNETはこれを確認する必要があります(接続にはOracleクライアントツールも使用します)
  4. 発信接続に使用できるローカルポートはありません(まれに)-数千の接続を作成している場合、または毎分数百の新しい接続を作成している場合のみ。
11
Damith

接続プールの接続が不足しているようです... DBMSリスナーの着信要求バッファが多数の同時接続要求によって過負荷になっている場合。それらのいくつかは失敗します。

連続する接続要求の間に、スレッドを少し(0.5秒から1秒程度)スリープさせることができます。その後、壊れるまで接続を閉じないでください。それらを保持し、再利用します。

1
Maxwell Cheng

https://forums.Oracle.com/forums/thread.jspa?messageID=2540479 を確認してください。おそらく、listener.oraのファイルHostパラメータをHostパラメータに変更する必要があります。 Windowsでホスト名がどのパラメーターであるかを確認できます、cmd> hostname

0
baybora.oren