У dbcp возникают проблемы с возвратом соединений, когда база данных недоступна - PullRequest
1 голос
/ 16 марта 2010

Я нашел следующую ссылку от Эриксона от 29 января 2009 года:

Имеет ли значение DBCP (пул соединений с базой данных Apache Commons)?

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

Солома, которая сломала спину верблюда, в моем случае была, когда я обнаружил, что весь пул был заблокирован все время, когда была предпринята новая попытка подключения к базе данных. Поэтому, если с вашей базой данных что-то происходит, что приводит к медленным соединениям или тайм-аутам, другие потоки блокируются, когда они пытаются вернуть соединение в пул, даже если они выполняются с использованием базы данных. "

Мне было интересно, сильно ли изменилось или улучшилось использование dbcp с момента публикации. Я вижу эту ТОЧНУЮ проблему в моей производственной системе.

У кого-нибудь есть альтернативы dbcp? Я использую его в структуре соединения с базой данных ... в основном, я унаследовал структуру, где инженеры думали, что было бы интересно переписать hibernate. не спрашивай ... это длинная и грязная история. В любом случае, у меня возникают проблемы с возвратом соединений в пул, когда база данных работает медленно или медленно. Есть идеи, предложения, альтернативы?

1 Ответ

0 голосов
/ 01 июня 2010

Попробуйте BoneCP: http://jolbox.com

Для вашего случая в нем есть вспомогательные потоки, которые позаботятся о медленном освобождении соединения или что-то еще.

...