保持c3p0连接活着

时间:2013-08-24 09:57:25

标签: hibernate jpa entitymanager c3p0

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

我喜欢将“unreturnedConnectionTimeout”保留为失败保存,但也希望能够保持有效的连接存活。

我该如何解决这个问题?

谢谢, 米洛

编辑: 似乎在unreturnedConnectionTimeout之后c3p0连接无法保持活动状态。它不是活动,而是创造时间。现在我正在寻找api访问c3p0来更新创建时间......呸,脏......

1 个答案:

答案 0 :(得分:0)

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

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

祝你好运!