DBCP关闭所有打开的连接

时间:2016-10-11 11:59:56

标签: java database apache-commons-dbcp mssql-jdbc

我正在使用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

1 个答案:

答案 0 :(得分:1)

您无需手动关闭它们。最好的办法就是配置Connection testing,在这种情况下,c3p0将默默地(但懒洋洋地)关闭旧的Connections并获取新的连接。

如果您想要更积极主动,只需在c3p0数据源上调用hardReset()(将其转换为PooldedDataSource后。