DBCP Закрыть все открытые соединения

2

Я использую пул соединений dbcp и имеет длительные хранимые процедуры. Открывается несколько соединений, и серверная машина базы данных (mssql) отключается, что оставляет эти соединения открытыми. Как я могу получить список открытых соединений из пула и закрыть их вручную из моего веб-приложения java?

InitialContext initCtx = new InitialContext();
            Object obj = initCtx.lookup("java:comp/env/jdbc/oscon");
            BasicDataSource source = (BasicDataSource) obj;

Я использую commons-dbcp2-2.0.1.jar

Теги:
database
mssql-jdbc
apache-commons-dbcp

1 ответ

1

Вам не нужно закрывать их вручную. Лучше всего просто настроить тестирование соединения, и в этом случае c3p0 будет молча (но лениво) закрыть старые соединения и приобрести новые.

Если вы хотите быть более активным, просто вызовите hardReset() в источнике данных c3p0 (после его добавления в PooldedDataSource.

  • 0
    Какой способ приведения BasicDataSource к PooledDataSource?
  • 0
    InitialContext initCtx = new InitialContext (); Object obj = initCtx.lookup ("java: comp / env / jdbc / oscon"); BasicDataSource source = (BasicDataSource) obj; PooledDataSource pds = (PooledDataSource) DataSources.pooledDataSource (source); pds.hardReset ();
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню