У нас уже несколько месяцев есть проблема, которая убивает нас, и мы вынуждены отскакивать от tomcat - изначально это случалось каждые пару месяцев, но с появлением все большего числа пользователей, это происходит почти ежедневно. Несколько человек смотрели на это, и до сих пор не смогли понять, почему мы получаем это после того, как приложение работает в течение нескольких часов. Мы используем шаблон представления открытого сеанса гибернации, где у нас открыт сеанс гибернации для жизненного цикла запроса / ответа. В настоящее время, после нескольких часов загрузки в производство, мы начинаем получать эту ошибку, и пользователи начинают видеть проблемы, и нам приходится отказов tomcat:
"Не удалось открыть Hibernate Session для транзакции; вложенное исключение - org.hibernate.SessionException: Session is closed!"
We're using hibernate 4.3.11.final, spring 4.3.7.RELEASE, and HikariCP version 3.1.0
Вот параметры, которые мы передаем в пул Hikari.
<property name="minimumIdle" value="${database.pool.minIdle}" />
<property name="maximumPoolSize" value="50" />
<property name="maxLifetime" value="180000" />
<property name="leakDetectionThreshold" value="180000" />
К сожалению, это приложение довольно старое и использует несколько различных «техник» для доступа к данным - часть кода использует jdbctemplate, часть использует hibernate с сущностями.
Моя последняя мысль: возможно, Хикари закрывает соединение между временем, в течение которого hibernate открывает его в начале цикла запрос / ответ, и концом, когда он закрывается, но это все равно, что найти иголку в стоге сена.
Буду признателен за любую помощь, даже указав в каком-то направлении, спасибо