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