Как правильно уничтожить пул Apache Commons DBCP в Java? - PullRequest
3 голосов
/ 16 сентября 2011

Я хотел бы использовать PoolingDataSource в качестве своего пула соединений (API по адресу: http://commons.apache.org/dbcp/apidocs/org/apache/commons/dbcp/PoolingDataSource.html),, но я не знаю, что делать с пулом, когда он мне больше не нужен. Что делать, если я хочу подключиться к новая база данных и больше не нужны соединения в старом пуле? В пуле нет метода close.

Ответы [ 3 ]

3 голосов
/ 16 сентября 2011

Вам не обязательно убивать этот пул, чтобы создать новый.

Вы можете управлять подключениями в нем, используя параметры maxIdle, timeBetweenEvictionRunsMillis и minEvictableIdleTimeMillis (см. здесь ), чтобы гарантировать, что незанятые соединения будут закрыты в разумные сроки.

Или вы можете настроить GenericObjectPool с этими параметрами программно и использовать при создании PoolingDataSource. У него есть метод close (), если вы хотите его принудительно вызвать.

2 голосов
/ 16 сентября 2011

Извините, что не ответил на ваш вопрос напрямую, но могу ли я рекомендовать не с использованием DBCP?У него был ряд серьезных проблем, которые другие библиотеки извлекли уроки и улучшили.

Есть гораздо лучших пулов .

1 голос
/ 16 сентября 2011

Какой бассейн вы используете? Если вы используете AbandonedObjectPool , то это подкласс GenericObjectPool Commons Pool, который имеет метод close () .

...