나는 hirbernate를 사용하여 무거운로드 된 자바 응용 프로그램을 가지고 있습니다. 그리고 연결 풀 DBCP로 사용했지만 연결이 끊어지는 문제가있었습니다. 내가 c3p0로 바꿨다. 하지만 지금은 때로는 스레드를 bloks 그리고 난 왜 몰라. 여기처럼 :데이터베이스 연결 풀링 라이브러리에 가장 적합한 선택은 무엇입니까? (c3p0 문제)
"[email protected]" prio=10 tid=0x00007fa6b0940000 nid=0x4e12 runnable [0x00007fa6f8f1c000]
java.lang.Thread.State: RUNNABLE
at com.mchange.v2.resourcepool.BasicResourcePool.doCheckinManaged(BasicResourcePool.java:1258)
at com.mchange.v2.resourcepool.BasicResourcePool.checkinResource(BasicResourcePool.java:647)
- locked <0x00007fa7286d9728> (a com.mchange.v2.resourcepool.BasicResourcePool)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$ConnectionEventListenerImpl.doCheckinResource(C3P0PooledConnectionPool.java:636)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$ConnectionEventListenerImpl.connectionClosed(C3P0PooledConnectionPool.java:630)
at com.mchange.v2.c3p0.util.ConnectionEventSupport.fireConnectionClosed(ConnectionEventSupport.java:55)
at com.mchange.v2.c3p0.impl.NewPooledConnection.fireConnectionClosed(NewPooledConnection.java:510)
at com.mchange.v2.c3p0.impl.NewPooledConnection.markClosedProxyConnection(NewPooledConnection.java:381)
at com.mchange.v2.c3p0.impl.NewProxyConnection.close(NewProxyConnection.java:1246)
- locked <0x00007fa794ccf020> (a com.mchange.v2.c3p0.impl.NewProxyConnection)
at org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.closeConnection(LocalDataSourceConnectionProvider.java:96)
at org.hibernate.jdbc.ConnectionManager.closeConnection(ConnectionManager.java:474)
at org.hibernate.jdbc.ConnectionManager.cleanup(ConnectionManager.java:408)
at org.hibernate.jdbc.ConnectionManager.close(ConnectionManager.java:347)
at org.hibernate.impl.SessionImpl.close(SessionImpl.java:325)
at org.springframework.orm.hibernate3.SessionFactoryUtils.closeSession(SessionFactoryUtils.java:791)
at org.springframework.orm.hibernate3.SessionFactoryUtils.closeSessionOrRegisterDeferredClose(SessionFactoryUtils.java:777)
at org.springframework.orm.hibernate3.SessionFactoryUtils.releaseSession(SessionFactoryUtils.java:755)
' 내 스택 트레이스 덤프는 잠시 서버가 completly 차단 된에 있도록이 스레드가 잠금 < 0x00007fa7286d9728>와 함께, 내 모든 다른 스레드를 차단 것으로 나타났다. 하나의 스레드가 오랫동안 다른 스레드를 모두 차단하고 있거나이 스레드가 소비 한 시간이 극도로 길지만 결과가 제 시스템이 완전히 차단되어 극단적으로 느린 경우이 스레드가 얼마나 오래 실행되는지는 잘 모르겠습니다. 나는 많이 봤지만이 문제를 해결하는 방법을 모른다. 가능한 한 빨리 연결을 닫고 트레드를 완료하려면 수영장이 있어야합니다. 다른 연결 풀을 사용해야합니까? 나에게있어이 풀 라이브러리는 다른 라이브러리보다 조금 느리다 고하더라도이 풀 라이브러리는 100 % 저장, 교착 상태, 수명, 시현 등 절대적으로 필요합니다. 무슨 뜻 이죠 어떤 도움
죄송합니다 이전 스레드를 부딪히지 만, 얼마 전에 주제에 대한 약간의 연구를했습니다. http://stackoverflow.com/questions/5640146/java-jdbc-connection-pool-library-choice-in- 2011 –