我有重載java應用程序使用hirbernate。我曾經使用連接池DBCP,但它有連接丟失的問題。比我切換到c3p0。但是現在它有時會出現問題,我不知道爲什麼。喜歡這裏:數據庫連接池庫的最佳選擇是什麼? (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)
' 我的堆棧跟蹤轉儲表明,該線程阻塞我的所有其他的主題,使用鎖< 0x00007fa7286d9728>,所以在一段時間服務器被完全地阻止。我不確定這個線程運行了多久,如果一個線程長時間阻塞了所有其他線程,或者這個線程所消耗的時間非常長,但結果是,我的系統完全被阻塞並且速度極慢。我搜索了很多,但我不知道如何解決這個問題。我需要游泳池來關閉連接並儘快完成步行。我應該使用其他連接池嗎?對我來說,這個池庫是絕對有必要的,它是100%保存,沒有死鎖,生命危險,飢餓,即使它比其他庫慢一點。
感謝你的意思是,當任何幫助
對不起,碰上一個舊的線程,但前段時間我做了一些關於這個問題的小研究:http://stackoverflow.com/questions/5640146/java-jdbc-connection-pool-library-choice-in- 2011 – 2011-04-19 16:48:54