Java 如何在连接池中检测关闭的连接?

Java 如何在连接池中检测关闭的连接?,java,jdbc,connection,pool,bonecp,Java,Jdbc,Connection,Pool,Bonecp,想象一下,当网络连接中断时,有一个活动的bonecpjdbc连接池,然后在一分钟后返回。为了自动重新连接并重新创建池,应该如何配置BoneCP? 当前,如果我尝试这样做,池中的所有jdbc连接都将保持可用,并且每次代码尝试使用它们时,都会出现异常:“java.sql.SQLException:JZ0C0:连接已关闭。” 更新: 看起来BoneCP可能不支持此操作。有人知道其他连接池框架是否(以及如何)解决这个问题吗?如果网络宕机,驱动程序应该抛出一个异常,然后由BoneCP捕获并销毁所有现有连接

想象一下,当网络连接中断时,有一个活动的bonecpjdbc连接池,然后在一分钟后返回。为了自动重新连接并重新创建池,应该如何配置BoneCP? 当前,如果我尝试这样做,池中的所有jdbc连接都将保持可用,并且每次代码尝试使用它们时,都会出现异常:“java.sql.SQLException:JZ0C0:连接已关闭。”

更新:
看起来BoneCP可能不支持此操作。有人知道其他连接池框架是否(以及如何)解决这个问题吗?

如果网络宕机,驱动程序应该抛出一个异常,然后由BoneCP捕获并销毁所有现有连接。

不,至少在我的情况下不会发生(使用Sybase驱动程序)。异常不会直接在网络崩溃时抛出。只有在尝试使用坏连接执行SQL语句后,才会引发异常。然而,即使这样,BoneCP也不会回收连接。