stiamo ottenendo eccezioni come questac3p0 - DEADLOCK apparente sulla MSSQL, ma non PostgreSQL o MySQL
com[email protected]5b7a7896 -- APPARENT DEADLOCK!!! Complete Status:
Managed Threads: 3
Active Threads: 3
Active Tasks:
co[email protected]55bc5e2a (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1)
co[email protected]41ca435f (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2)
co[email protected]460d33b7 (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0)
Pending Tasks:
quando test di carico la nostra applicazione su MSSQL 2008 R2 (jTDS o ufficiale MS JDBC non importa) . Non otteniamo mai questa eccezione quando eseguiamo gli stessi test con PostgreSQL o MySQL.
Non vogliamo solo aumentare il numero di thread di supporto per c3p0 (che risolve il problema, ma per quanto tempo?). Vogliamo sapere qual è il problema in quanto funziona con altri DBMS '.
Le applicazioni si comporta come:
- Invia X richiede
- Attendere per un po '-> DEADLOCK
- Invia X richiede
- Attendere per un po' -> DEADLOCK
Qualcuno sa o ha un'idea del perché abbiamo questo comportamento con MSSQL?
Grazie, Adrian
(Btw. BoneCP funziona senza alcun problema anche.)
Che cos'è questa utilità e perché segnala "blocco apparente" anziché deadlock effettivo? SQL Server rileva i deadlock effettivi. È possibile tracciare il grafico del deadlock per poi diagnosticare il motivo per cui si verifica. –
Ciao Martin, SQL Server stesso non ottiene deadlock. Sembra essere solo c3p0 (una lib di condivisione delle connessioni per Java) presuppone che ci sia stato un deadlock. – Adrian
Adrian - puoi chiarire se usare BoneCP ha evitato il problema? – tgdavies