Wie behebe ich den Fehler „JavasqlSQLException: No more data to read from socket“ (Keine weiteren Daten aus dem Socket ablesbar), wenn ich versuche, eine Verbindung zu meiner Amazon-RDS-for-Oracle-Instance herzustellen?

Letzte Aktualisierung: 12.11.2021

Ich erhalte den Fehler „JavasqlSQLException: No more data to read from socket“ (Keine weiteren Daten aus dem Socket ablesbar), wenn ich versuche, eine Verbindung zu meinem Amazon Relational Database Service (Amazon RDS) für die Oracle-DB-Instance herzustellen.

Auflösung

Sie erhalten die Fehlermeldung „JavasqlSQLException: No more data to read from socket“ (Keine weiteren Daten aus dem Socket ablesbar) aufgrund eines Konnektivitätsproblems zwischen dem Oracle-Server und dem Client-JDBC-Treiber. Die häufigsten Gründe und Optionen zur Fehlerbehebung für diese Verbindungsfehler sind folgende:

  • Die Verbindung wird aufgrund von Netzwerkunterbrechungen abrupt beendet: Um dieses Problem zu beheben, überprüfen Sie die Datei alert.log der Instance auf TNS-Timeout-Fehler, die zum Zeitpunkt der Zeitüberschreitung seitens der Anwendung gemeldet wurden. Weitere Informationen finden Sie in der Oracle-Dokumentation für TNS-Timeout-Fehler. Weitere Informationen zum Zugriff auf das Alert-Log für RDS-Instances finden Sie unter Protokolldateien für Oracle-Datenbanken.
  • Die Verbindung wurde aufgrund von Oracle-Fehlern auf der Serverseite beendet: Prüfen Sie die Datei alert.log auf ORA-0600- oder ORA-07445-Fehler. Sammeln Sie den Trace-Dump für bestimmte Oracle-Fehler. Prüfen Sie, ob diese Fehler einen bekannten Fix haben, der vom Oracle Support bereitgestellt wurde.
  • Die Client-Server-Verbindung ist nicht aktiv: Um dieses Problem zu beheben, setzen Sie den Parameter SQLNET.EXPIRE_TIME auf ein bestimmtes Intervall in Minuten, um einen Test zu senden, der überprüft, ob die Client-Server-Verbindungen aktiv sind. Weitere Informationen finden Sie in der Oracle-Dokumentation für -SQLNET. EXPIRE_TIME.
  • Die RDS-for-Oracle-Instance ist nicht verfügbar oder wurde neu gestartet, als der JDBC-Client versuchte, eine vorhandene Verbindung zum Oracle-Server zu verwenden: Um dieses Problem zu beheben, rufen Ereignisse für die RDS-Instance ab und prüfen Sie, ob die Instance neu gestartet oder beendet wurde, als die Verbindungen vom JDBC-Client aus hergestellt wurden.
  • Die JDBC-Treiber, die für die Verbindung mit der RDS-for-Oracle-Instance verwendet werden, sind nicht kompatibel: Um dieses Problem zu beheben, stellen Sie sicher, dass die Version des JDBC-Treibers mit der Version der DB-Instance kompatibel ist. Eine Liste der kompatiblen JDBC-Treiber finden Sie in der Oracle-Dokumentation zur Kompatibilitätsmatrix für Java-Maschinen und JDBC-Treiber, die mit ODI verwendet werden. Wenn der JDBC-Treiber nicht kompatibel ist, laden Sie die neueste JAR-Datei in Ihren Quellcode herunter. Nehmen Sie diese Datei dann in Ihren Klassenpfad auf, wenn Sie die Klasse kompilieren, die Verbindungen zur Datenbank herstellt. Weitere Informationen finden Sie unter Herunterladen des JDBC-Treibers.
  • Die clientseitigen Speicherkomponenten verursachen Timeouts: Um dieses Problem zu beheben, überprüfen Sie, ob der Oracle-Data-Integrator über Speicherkomponenten auf der Clientseite verfügt, die unerwünschte Timeouts verursachen. Stellen Sie sicher, dass Sie die richtigen Werte für diese Komponenten auf der Clientseite festlegen. Weitere Informationen finden Sie in der Oracle-Dokumentation zum Definieren von Java-Optionen (z. B. die Grenzen des Speicher-Heaps, der Speicherort von Nicht-Java-Bibliotheken usw.) in ODI.

War dieser Artikel hilfreich?


Benötigen Sie Hilfe zur Fakturierung oder technischen Support?