транзакция совершена, когда мое соединение административно отключено - PullRequest
1 голос
/ 09 февраля 2012

Мой проект использует Struts, Hibernate и Spring, Oracle DB, сервер WebLogic.

У меня есть транзакция, вставляющая много таблиц (около 20), и я почти уверен, что она выполняется в транзакции.

Теперь я обнаружил, что иногда (вероятность 0,001?) Таблица не вставляется полностью, например, успешно вставлено 10 таблиц, а остальные нет.

Ниже приведен журнал ошибок от пружины.

ExecuteThread: '8' для очереди: 'weblogic.kernel.Default (self-tuning)'] SQLErrorCodesFactory: ошибка при извлечении имени продукта базы данных - возврат к пустым кодам ошибок org.springframework.jdbc.support.MetaDataAccessException: ошибка при извлечении DatabaseMetaData; Вложенное исключение - java.sql.SQLException: соединение было административно отключено. Попробуйте позже.

Что будет делать Spring (или менеджер транзакций hibernate, или weblogic), если соединение отключено в административном порядке.

1 Ответ

0 голосов
/ 09 февраля 2012

Я не эксперт по Weblogic, но, похоже, это связано с управлением пулом ... Не могли бы вы проверить наличие исправлений на сервере Weblogic (не знаю, какую версию вы используете) .... При некоторых обстоятельствах ваш пул можетзаполнены недостаточно быстро, поэтому нет доступных соединений ... Я думаю, что пул должен иметь возможность вернуться к стандартному контексту, как только база данных ответит достаточно быстро ... (только предположение)

...