2014-09-15 7 views
1

내 데이터베이스 연결 풀로 hikaricp를 사용하고 있습니다. 내 SQL 문을 사용하여 연결을 닫을 때 나는 당신이 연결 프록시를 다시 풀에 반환해야한다고 생각하는 연결에서 close를 호출합니다. 그러나 다음과 같은 경고 (오류 아님) 메시지가 표시되며 연결 리소스를 올바르게 정리하지 않아 문제를 해결해야하는지 궁금합니다. 나는 자원을 사용하여 try를 사용하고 있지는 않지만 try catch를 사용하여 마침내 연결을 닫습니다. (특정 조건에서 마침내 실제로 호출되지는 않지만 내 경우에는 호출되는 것입니다.) 결국 &에서 연결을 닫습니다. 이견있는 사람?경고 메시지와 함께 hikaricp

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) 

답변

0

실제로 풀에 연결을 해제하고 있는지 확인할 수 있습니까? (브렛가 언급 한 바와 같이 증가 임계 값에 추가로) 당신은 자원 시도를 사용할 수 있습니다

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

및 결과 집합을 (때문에 일부 드라이버/연결이 확실하지 불구하고 청소 때이 여전히 유효한 경우 데이터베이스는 결과 집합을 청소하지 않을 수 있습니다 새 드라이버/데이터베이스에 대해서는 사용하고 있는지 잘 모르겠습니다.) :

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

희망이 있습니다.

+0

덕분에 두 가지 모두에게 감사드립니다. - 나중에 문제가 발생했을 수도 있지만 여전히 확인되지 않은 문제가 있음을 알게되었습니다. 리소스를 사용하여 누출 문을 더 이상 볼 수 없습니다. –

0

누출 감지 시간 초과보다 긴 연결을 사용하고있을 가능성이 있습니다. 누출 감지는 연결이 풀에서 얼마나 오래되었는지 임계 값입니다. 임계 값을 더 길게 늘리십시오.

+0

공유 해 주셔서 감사합니다. 확실히하기 위해, 나는 단지 자원으로 시도하여 확실하게 테스트하고있다. 다른 휴식을 취할 때도 한계점을 높입니다. –