IOException: Netzwerkadapter konnte die Verbindung nicht herstellen [duplizieren]

Diese Frage hat hier bereits eine Antwort:

Der Netzwerkadapter konnte die Verbindung nicht herstellen, wenn eine Verbindung mit Oracle DB hergestellt wurde. 4 Antworten

Wir haben angefangen, das Problem "Netzwerkadapter konnte die Verbindung nicht herstellen" in unserer Produktionsumgebung von Zeit zu Zeit zu haben. Ich habe viel google gemacht und hier einige Fragen durchgearbeitet, aber immer noch keine Lösung gefunden.

Hier sind einige Informationen über unsere Umwelt:

Wir verwenden RAC mit 2 Oracle-Instanzen (Version 10.2.0.4).Wir haben mehrere App-Server (JBoss AS5), die auf dem RAC ausgeführt werden. Die Verbindungs-URL in oracle-ds.xml lautet "jdbc: oracle: thin: @ (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOKOLL = TCP) (HOST = db1_vip) (PORT = 1521)) (ADDRESS = (PROTOKOLL = 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))) "Wir haben db1_vip / db2_vip sowie die aktuelle IP von 2 Oracle-Instanzen zu / etc / hosts auf beiden App-Servern hinzugefügt.Es gibt eine Firewall zwischen Oracle-Instanzen und App-Servern, aber wir haben den 1521-Port auf beiden Oracle-Instanzen geöffnet.

Wir haben folgende Tests durchgeführt, um zu überprüfen, ob ein Problem mit dem Netzwerk- oder Oracle TNS-Listener vorliegt:

enn Sie Ping von App-Servern auf beide Oracle-Instanzen ausführen, funktioniert alles ohne Paketverlustelnet den 1521-Port von App-Servern zu beiden Oracle-Instanzen, nichts falsch. tnsping funktioniert auch gut.Wir haben das Listener-Protokoll überprüft, aber nichts Wertvolles gefunden.

Das Seltsamste ist, dass dieser Fehler auf einem App-Server ungefähr 10 Mal pro Stunde auftritt, auf einem anderen App-Server jedoch nur 1 oder 2 Mal pro Tag.

Kann jemand etwas Licht auf diesen Fehler werfen?

Vielen Dan

[EDIT4]: Es ist ein Timeout-Problem beim Senden einer Oracle-Instanz aufgetreten. Daher haben wir die jdbc-URL geändert, um nur eine Instanz zu verbinden, und festgestellt, dass die IOException nie wieder aufgetreten ist. Wir glauben also, dass das Problem mit der Datenbank zusammenhängt und das DBA-Team weiterhin nachsehen wird das mögen

[EDIT3]: Wir haben folgende Versuche unternommen:

Deaktiviert die Firewall zwischen App-Servern und Datenbankservern.Verwende ip anstelle von host name Verwenden Sie wireshark, um zu überprüfen, ob ein TCP-Paketproblem vorliegt.

keiner von ihnen erfolgreich, jemand bitte helfen ~

[EDIT]: der Fehler-Stack-Trace:

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