我正在使用dbcp连接池并且长时间运行存储过程。打开了几个连接,并且数据库(mssql)服务器机器关闭,这使得这些连接保持打开状态。如何从池中获取打开的连接列表并从我的Java Web应用程序手动关闭它们?
InitialContext initCtx = new InitialContext();
Object obj = initCtx.lookup("java:comp/env/jdbc/oscon");
BasicDataSource source = (BasicDataSource) obj;
我正在使用commons-dbcp2-2.0.1.jar
答案 0 :(得分:1)
您无需手动关闭它们。最好的办法就是配置Connection testing,在这种情况下,c3p0将默默地(但懒洋洋地)关闭旧的Connections并获取新的连接。
如果您想要更积极主动,只需在c3p0数据源上调用hardReset()(将其转换为PooldedDataSource后。