continuo a ricevere questa eccezione nel mio ceppo Tomcat:c3p0 apparente eccezione DEADLOCK
com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector run
WARNING: com[email protected]76b28200 -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!
com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector run
WARNING: com[email protected]76b28200 -- APPARENT DEADLOCK!!! Complete Status:
Managed Threads: 3
Active Threads: 3
Active Tasks:
[email protected]18 (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1)
[email protected]e4 (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0)
[email protected]d8 (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2)
Pending Tasks:
[email protected]53
[email protected]24
Pool thread stack traces:
Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1,5,main]
java.lang.Thread.sleep(Native Method)
com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1805)
com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0,5,main]
java.lang.Thread.sleep(Native Method)
com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.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(BasicResourcePool.java:1805)
com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
Sto usando Hibernate 3.6.2 e 0.9.1.2 C3P0 con MySQL. Dopo un paio d'ore di ricerche su Google, questa eccezione DEADLOCK APPARENT sembra essere in genere associata alla cache delle istruzioni preparate. Questa è la mia configurazione C3P0 nel mio hibernate.cfg.xml:
<propertyname="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
<property name="hibernate.c3p0.acquire_increment">5</property>
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.max_size">60</property>
<property name="hibernate.c3p0.idle_test_period">120</property>
<property name="hibernate.c3p0.timeout">180</property>
<property name="hibernate.c3p0.max_statements">0</property>
non sto facendo alcun caching dichiarazione di sorta. Qualsiasi suggerimento su ciò che è sbagliato qui sarebbe molto apprezzato.
Sembra che l'aggiornamento del mio c3p0 alla versione 0.9.2.1 abbia funzionato! Grazie a @SteveWaldman per il suggerimento. – corderazo00
Apparentemente non ha funzionato, APPARENT DEADLOCK è tornato ... C'è un modo per monitorare le attività di c3p0 più vicino o ad un livello più basso per capire perché è esattamente sospeso quando si tenta di acquisire una connessione? – corderazo00
L'eliminazione della cache del server web (tomcat/work/Catalina) può avere qualcosa a che fare con questo? Ho trovato alcuni thread in cui la gente afferma che questo ha risolto i loro problemi. ridistribuire caldo – corderazo00