Я использую пул соединений 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
Вам не нужно закрывать их вручную. Лучше всего просто настроить тестирование соединения, и в этом случае c3p0 будет молча (но лениво) закрыть старые соединения и приобрести новые.
Если вы хотите быть более активным, просто вызовите hardReset() в источнике данных c3p0 (после его добавления в PooldedDataSource.