[кросс-постинг из ServerFault]Oracle 9i Session Отключение
Я нахожусь в среде разработки, и наш тестовый сервер Oracle 9i был обнаружен нарушением в течение нескольких дней в настоящее время. Что происходит, так это то, что мы отключили соединения JDBC после нескольких успешных соединений.
Мы получили эту коробку, созданную нашим отделом ИТ и переданной. Это «наша проблема», поэтому варианты «спросить вас, DBA» не помогут мне. :(
Наш сервер настроен с тремя простыми базами данных (один из них является основным dev db, другой - «экспериментальным» dev db). Мы используем тонкий JDBC-драйвер Oracle 10 ojdbc14.jar (из-за некоторой ошибки в версии 9 драйвера). Мы используем Hibernate, чтобы поговорить с БД.
Единственное, что я вижу, что изменилось, это то, что теперь у нас больше пользователей, подключающихся к серверу. Вместо одного разработчика, мы теперь имеем 3. с пулов соединений Hibernate, я думаю, что, может быть, мы ударяя некоторый предел?
Каждый имеет ни малейшего представления, что происходит?
Вот трассировка стека на клиенте:
Caused by: org.hibernate.exception.GenericJDBCException: could not execute query
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:126) [hibernate3.jar:na]
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:114) [hibernate3.jar:na]
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66) [hibernate3.jar:na]
at org.hibernate.loader.Loader.doList(Loader.java:2235) [hibernate3.jar:na]
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2129) [hibernate3.jar:na]
at org.hibernate.loader.Loader.list(Loader.java:2124) [hibernate3.jar:na]
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:401) [hibernate3.jar:na]
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363) [hibernate3.jar:na]
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196) [hibernate3.jar:na]
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1149) [hibernate3.jar:na]
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102) [hibernate3.jar:na]
...
Caused by: java.sql.SQLException: Io exception: Connection reset
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) [ojdbc14.jar:Oracle JDBC Driver version - "10.2.0.4.0"]
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:146) [ojdbc14.jar:Oracle JDBC Driver version - "10.2.0.4.0"]
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:255) [ojdbc14.jar:Oracle JDBC Driver version - "10.2.0.4.0"]
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:829) [ojdbc14.jar:Oracle JDBC Driver version - "10.2.0.4.0"]
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1049) [ojdbc14.jar:Oracle JDBC Driver version - "10.2.0.4.0"]
at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:854) [ojdbc14.jar:Oracle JDBC Driver version - "10.2.0.4.0"]
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1154) [ojdbc14.jar:Oracle JDBC Driver version - "10.2.0.4.0"]
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3370) [ojdbc14.jar:Oracle JDBC Driver version - "10.2.0.4.0"]
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3415) [ojdbc14.jar:Oracle JDBC Driver version - "10.2.0.4.0"]
at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:208) [hibernate3.jar:na]
at org.hibernate.loader.Loader.getResultSet(Loader.java:1812) [hibernate3.jar:na]
at org.hibernate.loader.Loader.doQuery(Loader.java:697) [hibernate3.jar:na]
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259) [hibernate3.jar:na]
at org.hibernate.loader.Loader.doList(Loader.java:2232) [hibernate3.jar:na]
Я согласен. Если в трассировке стека нет сообщения ORA- или TNS-oracle, просто сброс соединения, процесс сервера, скорее всего, не удался, оставив файл трассировки на сервере базы данных в USER_DUMP_DEST. Вы должны будете, чтобы ваш DBA нашел файл трассировки на время ошибки, предполагая, что он все еще существует, чтобы помочь диагностировать проблему. –
Я использовал самый последний и самый яркий драйвер ojdbc6.jar, и проблема не изменилась ... только трассировка стека имеет несколько разных типов исключений. – malaverdiere
Можете ли вы воспроизвести это поведение с помощью простого кода? – duffymo