Как правильно уничтожить пул DBCP Apache Commons В Java?
Я хотел бы использовать PoolingDataSource в качестве пула соединений (API at: http://commons.apache.org/dbcp/apidocs/org/apache/commons/dbcp/PoolingDataSource.html ), но я не знаю, что делать с бассейном, когда он мне больше не нужен. Что делать, если я хочу подключиться к новой базе данных и больше не нуждаюсь в соединениях в старом пуле? В бассейне нет метода закрытия.
3 ответа:
Вам не обязательно убивать этот пул, чтобы создать новый.
Вы можете управлять соединениями в нем с помощью параметров maxIdle, timeBetweenEvictionRunsMillis и minEvictableIdleTimeMillis (см. здесь), чтобы обеспечить закрытие неработающих соединений в разумные сроки.
Или вы можете настроить GenericObjectPool с этими параметрами программно и использовать при создании вашего PoolingDataSource. У этого есть метод close (), если вы хотите заставить его.
Извините, что не отвечаю прямо на ваш вопрос, но могу ли я рекомендовать Не использовать DBCP? У него был ряд серьезных проблем, которые другие библиотеки изучили и улучшили.
Есть гораздо лучшие бассейны.
Какой бассейн вы используете? Если вы используете AbandonedObjectPool, то это подкласс общин бассейна GenericObjectPool, который закрыть() Метод.