我们几个月来一直遇到问题,这已经使我们丧命,而且我们不得不为雄猫反弹-最初每隔几个月就会发生一次,但是随着越来越多的用户,它几乎每天都在发生。多个人都在看它,但到目前为止,在应用程序启动几个小时后,我们仍无法弄清为什么会得到这个。我们使用的是休眠打开会话视图模式,其中为请求/响应生命周期打开了一个休眠会话。目前,在生产中加载了大约几个小时后,我们开始出现此错误,并且用户开始看到问题,因此我们必须重新启动tomcat:
“无法为事务打开Hibernate会话;嵌套异常是org.hibernate.SessionException:会话已关闭!”
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,一些代码使用实体休眠。
我的最新想法是,Hikari可能会在休眠在请求/响应周期开始时打开它与关闭它时结束之间的时间之间关闭连接,但这就像在大海捞针中找到一根针。
感谢任何帮助,甚至指向一个方向,谢谢