Мы получаем исключения, подобные этому
com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@5b7a7896 -- APPARENT DEADLOCK!!! Complete Status:
Managed Threads: 3
Active Threads: 3
Active Tasks:
com.mchange.v2.c3p0.stmt.GooGooStatementCache$1StatementCloseTask@55bc5e2a (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1)
com.mchange.v2.c3p0.stmt.GooGooStatementCache$1StatementCloseTask@41ca435f (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2)
com.mchange.v2.c3p0.stmt.GooGooStatementCache$1StatementCloseTask@460d33b7 (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0)
Pending Tasks:
при нагрузочном тестировании нашего приложения на MSSQL 2008 R2 (jTDS или официальный MS JDBC не имеет значения) .Мы никогда не получим это исключение при запуске тех же тестов для PostgreSQL или MySQL .
Мы не просто хотим увеличить количество вспомогательных потоков для c3p0 (чторешает проблему, но как долго?).Мы хотим знать, в чем проблема, так как она работает с другими СУБД.
Приложения ведут себя так:
- Отправка X запросов
- Подождите немного -> DEADLOCK
- Отправка X запросов
- Подождите немного -> DEADLOCK
Кто-нибудь знает или имеет представление о том, почему у нас такое поведение с MSSQL?
Спасибо, Адриан
(Кстати, BoneCP тоже работает без проблем.)