用hikaricp发出警告信息

时间:2014-09-15 18:05:23

标签: java database-connection connection-pooling hikaricp

我使用hikaricp作为我的数据库连接池。当我完成SQL语句时,我通过调用close连接来关闭连接,我相信你应该将连接代理返回到池中。然而,我看到以下警告(而不是错误)消息,我不得不怀疑它是否需要解决,因为我没有正确清理我的连接资源。我没有尝试使用资源但最后使用try catch(我在finally& amp中关闭连接;我意识到在某些条件下,finally实际上可能没有被调用但是在我的情况下调用它)。有什么想法吗?

2014-09-15 13:59:26,083 WARN c.z.h.p.LeakTask [Hikari Housekeeping Timer (pool wmHikariCp)] Connection leak detection triggered, stack trace follows java.lang.Exception
    at com.abc.test.DBConnPool.getConnection(DBConnPool.java:71)
    at com.abc.test.TestProj.callDB(TestApp.java:30)
    at com.abc.test.TestProj.main(TestApp.java:81)

2 个答案:

答案 0 :(得分:0)

您可能只是使用比泄漏检测超时更长的连接。泄漏检测是连接离开池的时间的阈值。尝试将阈值提高到更长的超时时间。

答案 1 :(得分:0)

您能否确认是否确实将连接释放回池中?你可以尝试使用资源(除了提高Brett提到的门槛):

try (Connection conn = DBConnectionPool.getConnection(); 
        PreparedStatement ps = conn.prepareStatement(preparedQuery);) {

和结果集(因为某些驱动程序/数据库在清除连接时可能无法清除结果集,但不确定这对于新驱动程序/数据库是否仍然有效,但我不确定您使用的是什么):

    try (ResultSet rs = ps.executeQuery();) {

希望它有所帮助。