c3p0連接池死鎖 APPARENT DEADLOCK!!!


搭建struts+hibernate+spring框架的時候,出現了c3p0連接池報死鎖,當時愣了好久,網上去查了資料,有人說::

 

解決辦法:

把max_statements設置為0。
c3p0在同時關閉statement和connection的時候,或者關閉他們之間的時間很短的時候,有時候connection並沒有被關閉,因為有些preparedstatement還在被cached住。這是c3p0的作者自己說的。

其實,我的情況不是這樣的,當時我搭建完環境,忘記新建數據庫了,新建數據庫后,我的問題就解決了,我想,如果你也整好在搭建Demo環境,出現這個問題,也不應該是上面的那種情況導致的.

 

 

警告: com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@200d0c
-- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!

2013-9-13 16:25:18 com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDet
ector run
警告: com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@200d0c
-- APPARENT DEADLOCK!!! Complete Status:
        Managed Threads: 3
        Active Threads: 3
        Active Tasks:
                com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@bdb859
 (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0)
                com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@191f61
c (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1)
                com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@1b4b24
d (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2)
        Pending Tasks:
                com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@260829

                com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@e1fb6c

Pool thread stack traces:
        Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0,5
,main]
                java.lang.Thread.sleep(Native Method)
                com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(Ba
sicResourcePool.java:1805)
                com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run
(ThreadPoolAsynchronousRunner.java:547)
        Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1,5
,main]
                java.lang.Thread.sleep(Native Method)
                com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(Ba
sicResourcePool.java:1805)
                com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run
(ThreadPoolAsynchronousRunner.java:547)
        Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2,5
,main]
                java.lang.Thread.sleep(Native Method)
                com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(Ba
sicResourcePool.java:1805)
                com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run
(ThreadPoolAsynchronousRunner.java:547)


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM