Come posso risolvere l'errore "javaSQLSQLException: No more data to read from socket (Nessun dato di lettura rimanente dal socket)" quando provo a connettermi alla mia istanza Amazon RDS for Oracle?

Ultimo aggiornamento: 12/11/2021

Viene visualizzato l'errore "javaSQLSQLException: No more data to read from socket (Nessun dato di lettura rimanente dal socket)" quando provo a connettermi alla mia istanza Amazon Relational Database Service (Amazon RDS) per l'istanza database di Oracle

Risoluzione

Viene visualizzato l'errore"JavaSQLSQLException: No more data to read from socket (Nessun dato di lettura rimanente dal socket)" a causa di un problema di connettività tra il server Oracle e il driver JDBC client. I motivi più comuni e le opzioni di risoluzione dei problemi per questi errori di connessione sono i seguenti:

  • La connessione viene interrotta bruscamente a causa di interruzioni di rete: per risolvere questo problema, controllare il file alert.log dell'istanza per eventuali errori di timeout TNS pubblicati durante il periodo in cui la connessione è scaduta dalla fine dell'applicazione. Per ulteriori informazioni, consulta la documentazione Oracle per TNS timeout errors (errori di timeout TNS). Per ulteriori informazioni sull'accesso all'alert log per le istanze RDS, consulta la sezione Oracle database log files (File di log del database Oracle).
  • La connessione viene interrotta a causa di errori Oracle sul lato server: verificare la presenza di errori ORA-0600 o ORA-07445 nel file alert.log. Raccogliere il dump di traccia per errori Oracle specifici. Verificare se questi errori hanno una correzione nota fornita dal supporto Oracle.
  • The client-server connection is not active (La connessione client-server non è attiva): per risolvere il problema, impostare il parametro SQLNET.EXPIRE_TIME su un intervallo specificato, in minuti, per inviare un probe che verifichi che le connessioni client-server siano attive. Per ulteriori informazioni, consulta la documentazione Oracle per SQLNET. EXPIRE_TIME.
  • L'istanza RDS for Oracle non è disponibile o è stata riavviata quando il client JDBC stava tentando di utilizzare una connessione esistente al server Oracle: per risolvere questo problema, recuperare gli eventi per l'istanza RDS e verificare se l'istanza è stata riavviata o interrotta quando le connessioni sono state stabilite dal client JDBC.
  • I driver JDBC utilizzati per la connessione all'istanza RDS for Oracle non sono compatibili: per risolvere il problema, verificare che la versione del driver JDBC sia compatibile con quella dell'istanza database. Per l'elenco dei driver JDBC compatibili, vedere la documentazione Oracle per la matrice di compatibilità per macchine Java e i driver JDBC utilizzati con ODI (Oracle Data Integrator). Se il driver JDBC non è compatibile, esegui il download del file JAR più recente nel codice sorgente. Quindi, includi questo file nel tuo classpath quando compili la classe che crea connessioni al database. Per ulteriori informazioni, consulta la sezioneDownloading the JDBC driver (Download del driver JDBC).
  • I componenti di memoria sul lato client causano timeout: per risolvere questo problema, verificare se Oracle Data Integrator dispone di componenti di memoria sul lato client che causano timeout indesiderati. Assicurarsi di impostare i valori corretti per questi componenti sul lato client. Per ulteriori informazioni, consulta la documentazione Oracle per How to define Java options (such as the limits of memory heap, the location of non-Java libraries, etc.) - Come definire le opzioni Java (come i limiti dell'heap di memoria, la posizione delle librerie non Java, ecc.) in ODI.

Questo articolo è stato utile?


Hai bisogno di supporto tecnico o per la fatturazione?