我正在使用 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
最佳答案
您不需要手动关闭它们。最好的办法就是配置 Connection testing ,在这种情况下,c3p0 将默默地(但懒惰地)关闭旧连接并获取新连接。
如果您想比这更主动,只需调用 hardReset()在 c3p0 数据源上(将其转换为 PooldedDataSource 之后。
关于java - DBCP 关闭所有打开的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39976759/