Я получаю следующее excpetion:SQLException: нарушение протокола. Oracle JDBC 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)
Система Oracle работает 10.2.0.3.0 на Solaris 5.10. Драйвер jdbc работает на JDK 1.6.0_21 (если он импортирует java на машине Solaris 5.10). Я пробовал несколько разных тонких драйверов оракула, включая последнюю и ту, которая, похоже, точно соответствует версии оракула.
Запрос, который я выполняю, довольно прост: «выберите * из some_table order by key1, key2, key3» Затем итерации через набор результатов и запись в файл. В таблице содержится около 12 миллионов строк, поэтому я ожидаю, что процесс длится долго, но, похоже, он умирает в течение 5-15 минут. Каждый раз, когда я запускаю его, он взрывается в другой строке, поэтому я не думаю, что проблема связана с данными.
Я нашел журнал оповещений оракула, но я не мог сказать, что что-то в нем было связано с моим процессом. Тем не менее, я не эксперт оракула и, возможно, есть оракул, на который мне нужно смотреть. Как ни странно, я запускаю около пяти из этих типов запросов (пара несколько сложнее) на разных соединениях, и только две самые простые из них когда-либо получают эту проблему.
Любая помощь или идеи относительно того, что посмотреть, чтобы сузить проблему, будут оценены.
Возможно, вы работаете из памяти на сервере БД? Правильно ли вы закрываете ресурсы на Java? Это происходит при первом запуске запроса в вашей серии или в одном из последующих? – Riggy