Как правильно уничтожить пул DBCP Apache Commons В Java?


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

3 3

3 ответа:

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

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

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

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

Есть гораздо лучшие бассейны.

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