В настоящее время у меня есть долго работающий поток, который использует сеанс гибернации для выполнения многих обновлений.В настоящее время наш тайм-аут соединения c3p0 установлен на 20 минут, и иногда он истекает из-за количества обновлений, которые мы выполняем.
Решение, которое я имею, состоит в том, чтобы периодически возвращать соединение с пулом путем закрытия сеанса (мы настроили hibernate таким образом) и получать новый.Увеличение тайм-аута нежелательно, поскольку один и тот же пул используется для всего приложения.
Проблема в том, что я не знаю, когда вернуть соединение с пулом, потому что я не знаю, какое время ожиданиясоединение есть.Я знаю, какая текущая настройка находится в нашем файле свойств, но это может быть изменено без моего ведома в любое время, поэтому оно хрупкое.Наличие счетчика и возврат соединения в зависимости от количества выполненных обновлений не идеален, но может быть моим последним средством.
У меня сеанс гибернации, как я могу получить тайм-аут соединения jdbc-соединения, поддерживающего сеанс?Использование классов SessionFactory и SessionFactoryImpl вполне приемлемо.