1

我正在使用unreturnedConnectionTimeout="1800"debugUnreturnedConnectionStackTraces="true"释放被遗忘的连接。但有时应用程序仍然存在,但数据库没有活动。c3p0 连接池会在 1800 秒后关闭连接。一旦我再次开始使用旧的 entityManager,它就会抱怨连接已关闭。SELECT NOW()我尝试每隔几分钟向 entityManager发送一个本地查询 ( ),但这并不能保持 c3p0 连接处于活动状态。也许本机查询绕过c3p0???

我喜欢保留 ' unreturnedConnectionTimeout' 作为失败保存,但也希望能够保持有效连接。

我该如何解决这个问题?

谢谢,米洛

编辑:似乎 c3p0 连接在unreturnedConnectionTimeout. 它不关注活动,而只关注创建时间。现在我正在寻找对 c3p0 的 api 访问以更新创建时间...呸,脏...

4

1 回答 1

0

听起来您很长一段时间都在检查连接。对于连接池,这不是一个好主意。连接(或 Hibernate 会话)应根据需要获取、使用,然后立即关闭,而不是保持活动和打开状态。

这是一个架构问题,而不是配置问题。

祝你好运!

于 2013-08-24T10:02:04.263 回答