MySQL连接不会被C3P0关闭

时间:2017-10-23 12:33:41

标签: java spring hibernate c3p0

我们正在使用MySQL数据库和C3P0ComboPooledDataSource进行池化。以下是配置:

minPoolSize=10
maxPoolSize=50
maxStatements=50
idleConnectionTestPeriod=3600
acquireIncrement=5
maxIdleTime=600
numHelperThreads=6
unreturnedConnectionTimeout=3600
maxIdleTimeExcessConnections=600

根据maxIdleTime之后的文档,连接应该自动关闭,当我们在本地调试时会发生这种情况。但是在生产服务器上,我们看到MySQL连接数(show processlist)超过50并且它们从最后2400秒处于睡眠模式,理想情况下应该在600秒后关闭。由于应用程序无法建立连接池数据源,因为它超过maxPoolSize。请让我知道可以做些什么来调试它以及我们如何解决它。

1 个答案:

答案 0 :(得分:0)

这几乎肯定是连接泄漏。请确保可靠地关闭您的Connections,最好使用类似try-with-resources

的内容

如果您不明白您的申请在何处无法可靠地关闭,请参阅例如C3P0 Spring Hibernate: Pool maxed out. How to debug?