sto ottenendo il seguente excpetion:SQLException: violazione del protocollo. Oracle JDBC problema di driver
java.sql.SQLException: Protocol violation
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:145)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:190)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:286)
at oracle.jdbc.driver.T4C80all.receive(T4C80all.java:766)
at oracle.jdbc.driver.T4CPreparedStatement.do0all8(T4CPreparedStatement.java:216)
at oracle.jdbc.driver.T4CPreparedStatement.fetch(T4CPreparedStatement.java:1225)
at oracle.jdbc.driver.OracleResultSetImpl.close_or_fetch_from_next(OracleResultSetImpl.java:373)
at oracle.jdbc.driver.OracleResultSetImpl.next(OracleResultSetImpl.java:284)
Il sistema Oracle è in esecuzione su Solaris 10.2.0.3.0 5.10. Il driver jdbc è in esecuzione su JDK 1.6.0_21 (se è importato, java è in esecuzione anche su una macchina Solaris 5.10). Ho provato diversi driver per Oracle oracle, incluso l'ultimo e quello che sembra corrispondere esattamente alla versione di Oracle.
La query che sto utilizzando è abbastanza semplice: "seleziona * da qualche_table order da key1, key2, key3" Quindi iterando attraverso il set di risultati e scrivendo su un file. La tabella ha circa 12 milioni di righe, quindi mi aspetto che il processo funzioni a lungo, ma sembra morire entro 5-15 minuti. Ogni volta che lo eseguo, esplode su una riga diversa, quindi non penso che il problema sia con i dati.
Ho trovato il registro degli avvisi di Oracle, ma non ho potuto dire che tutto ciò che è contenuto fosse correlato al mio processo. Tuttavia, non sono un esperto di oracoli e forse c'è un oracolo che devo guardare. Stranamente, sto eseguendo circa cinque di questi tipi di query (un paio sono un po 'più complicate) su connessioni diverse e solo due più semplici hanno mai riscontrato questo problema.
Qualsiasi aiuto o idea su cosa guardare per restringere il problema sarebbe apprezzato.
Forse siete a corto di memoria sul server di DB? Stai chiudendo correttamente le risorse in Java? Sta succedendo nella prima query eseguita nella tua serie o in una delle ultime? – Riggy