Hibernate занимает 10 минут, чтобы вызвать исключение, когда база данных не работает
Вопрос
Я использую Spring + Hibernate 3 + C3P0. При запуске, если база данных не работает, исключение выдается примерно через 10 минут. До этого программа блокируется ... Я не включаю Spring xml, конфигурацию гибернации и т. Д., Поскольку это довольно распространенная проблема, и если решение существует, оно должно быть стандартным простым способом. Если нет, я могу обрезать важный код и конфигурацию и вставить его здесь. Кто-нибудь знает что-нибудь об этом? Заранее спасибо.
<Ч>Чтобы уточнить:
В сущности, мне нужно знать, есть ли обертка в c3p0, hibernate или даже spring вокруг функции DriverManager.setLoginTimeout (). Или функция, которая предлагает мне эту функциональность. Обертка может быть через настройки или что-то. Я просто хочу получить исключение, если я не подключился к источнику данных в течение X секунд, независимо от причины (сокет, база данных, плохая погода). И я хочу найти место для установки этого X. Что еще хуже, драйвер Oracle, который является драйвером, который я использую, не реализует setLoginTimeout (), поэтому я не могу использовать его напрямую. Я пришел к выводу, что нет способа решить эту проблему, кроме как вручную создать собственный поток таймера. Кто-нибудь может проверить вышеуказанную ситуацию? Большое спасибо.
Решение
Скорее всего, это не связано с Hibernate / Spring как таковым; пул соединений с базой данных отвечает за работу с соединениями.
<Ол>Обновление (на основании пояснений к ОП ниже):
DriverManager.setLoginTimeout ()
не используется драйвером oracle. OracleDataSource имеет свой собственный взамен настройки loginTimeout .