Несколько экземпляров Hibernate с использованием C3P0 - PullRequest
0 голосов
/ 16 ноября 2009

У меня странная проблема, и похоже, что она связана с c3p0. Я запускаю два экземпляра приложения в том же Java-VM, которые взаимодействуют друг с другом. После некоторых операций в журнале появляются сообщения «APPARENT DEADLOCK».

У меня такое ощущение, что оба экземпляра приложения используют один и тот же пул соединений, хотя они используют разные экземпляры фабрики сеансов.

Может быть, в C3P0 есть какая-то "магия-одиночка"?

1 Ответ

0 голосов
/ 16 ноября 2009

Насколько я знаю, здесь нет ни одного синглета. Каждый экземпляр источника данных настраивается / создается / управляется отдельно.

Кроме того, использование одного и того же источника данных из нескольких сеансовых фабрик не должно вызывать каких-либо проблем (при условии надлежащей конфигурации, достаточного количества соединений и т. Д., Но это не относится к делу).

Вы пытались увеличить количество вспомогательных потоков и установить для maxAdministrativeTaskTime ненулевое значение как , описанное здесь ?

...