我正在使用hikaricp作为数据库连接池。我完成SQL语句后,通过对连接调用close来关闭连接,我相信您应该将连接代理返回到池中。但是,我看到以下警告(不是错误)消息,我想知道是否需要解决此问题,因为我没有正确清理连接资源。我不是在尝试使用资源,而是在最后使用try catch(我在finally中关闭了连接,并且我意识到在某些情况下,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)

最佳答案

您可以确认是否确实将连接释放回池吗?您是否可以尝试使用资源(除了增加Brett提到的阈值):

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


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

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


希望能帮助到你。

关于java - hikaricp警告消息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25854118/

10-17 02:49