6

実稼働環境でこの「ネットワークアダプタが接続を確立できませんでした」という問題が発生することがありました。Googleで多くのことを行い、ここでいくつかの質問をしましたが、それでも解決策が得られませんでした。

これが私たちの環境に関するいくつかの情報です:

  1. 2つのOracleインスタンス(バージョン10.2.0.4)でRACを使用しています。
  2. RAC上で実行されているいくつかのアプリサーバー(JBoss AS5)があります。
  3. oracle-ds.xmlの接続URLは"jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = db1_vip)(PORT = 1521))(ADDRESS =(PROTOCOL = TCP )(HOST = db2_vip)(PORT = 1521))(LOAD_BALANCE = yes))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = G1db)(FAILOVER_MODE =(TYPE = SELECT)(METHOD = BASIC)(RETRIES = 120)( DELAY = 5)))) "
  4. db1_vip / db2_vipと、2つのOracleインスタンスの実際のIPを両方のアプリサーバーの/ etc/hostsに追加しました
  5. Oracleインスタンスとアプリサーバーの間にファイアウォールがありますが、両方のOracleインスタンスで1521ポートを開きました。

ネットワークまたはOracleTNSリスナーに問題があるかどうかを確認するために、次のテストを実行しました。

  1. アプリサーバーから両方のOracleインスタンスへのpingを実行すると、パケット損失なしですべてが正常に機能します。
  2. 1521ポートをアプリサーバーから両方のOracleインスタンスにtelnetで接続します。問題はありません。
  3. tnspingも正常に機能します。
  4. リスナーログを確認しましたが、価値のあるものは何も見つかりませんでした。

最も奇妙なことは、このエラーは1つのアプリサーバーでは1時間に約10回発生しますが、別のアプリサーバーでは1日に1〜2回しか発生しないことです。

誰かがこのエラーに光を当てることができますか?

ありがとう

[EDIT4]:1つのOracleインスタンスをtnspingするとタイムアウトの問題が見つかりました。そのため、jdbcのURLを変更して1つのインスタンスのみを接続し、IOExceptionが二度と発生しないことを確認しました。この問題はデータベースに関連していると考えられ、DBAチームは引き続き調査を行います。これ。

[EDIT3]:次の試みを行いました:

  1. アプリサーバーとデータベースサーバー間のファイアウォールを無効にしました
  2. ホスト名の代わりにIPを使用する
  3. wiresharkを使用して、tcpパケットに問題があるかどうかを確認します。

どれも成功しません、誰か助けてください〜

[編集]:エラースタックトレース:

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.<init>(PhysicalConnection.java:414)
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)
    at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.getLocalManagedConnection(LocalManagedConnectionFactory.java:207)
    ... 5 more
4

2 に答える 2

6

エラー

java.sql.SQLException: Io 例外: ネットワーク アダプタは接続を確立できませんでした

とは何の関係もありませんJava/JDBC。これは、ネットワーク設定に問題がある場合に発生するエラーです。私の推測では、ファイアウォールの問題です。無効にして、エラーがまだあるかどうかを確認できますか?

于 2012-09-25T09:02:39.920 に答える
-1

接続を編集してテストしますが、tnsping が見つかりました!、virtualbox を使用する場合 (アダプター チェックですべて許可)、私の場合、localhost を使用する代わりに IP を使用するとエラーが発生しました

于 2014-11-10T14:11:59.627 に答える