bonecp取消断点后,连接就不能及时释放
最近项目更换数据库连接,从原来的proxool换到bonecp,配置后出现个奇怪的问题,debug下设置了断点可以及时释放连接,但是取消断点后,连接就不能及时释放了。谢谢
附配置代码:
// 加载JDBC驱动 Class.forName("oracle.jdbc.driver.OracleDriver"); // 设置连接池配置信息 BoneCPConfig config = new BoneCPConfig(); InputStream in; String url = ""; String userName = ""; String password = ""; in = getClass().getResourceAsStream("/DB.properties"); Properties p = new Properties(); p.load(in); url = p.getProperty("url"); userName = p.getProperty("userName"); password = p.getProperty("password"); // 数据库的JDBC URL config.setJdbcUrl(url); // 数据库用户名 config.setUsername(userName); // 数据库用户密码 config.setPassword(password); config.setMinConnectionsPerPartition(1); config.setMaxConnectionsPerPartition(1); config.setPartitionCount(1); // 设置数据库连接池 connectionPool = new BoneCP(config); // 从数据库连接池获取一个数据库连接 con = connectionPool.getConnection(); // fetch a connection
关闭连接代码:
try{ this.connectionPool.shutdown(); }catch(Exception ex){ ex.printStackTrace(); }finally { if (this.con != null) { try { this.con.close(); } catch (SQLException e) { e.printStackTrace(); } } }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
不会吧
不能这样测试?
指的是不能加断点测试连接泄漏还是不能通过修改连接数和分区数来测试?
WEB环境里面并不缺少并发,我单独用官网那个测试程序测试过,也不存在连接泄漏的问题。
实际应用中加上断点测试也不存在问题,问题是取消断点后就出现这个问题了
我修改了最大、最小连接数和分区数到1、3、5 ,泄漏情况好了点,不过依然存在这个问题(从原来的24变为2),何故?
我感觉你用这个连接池的方法似乎不太对劲。
连接池应该用在有并发操作、多线程的环境中,不知道你的测试程序是怎样的,bonecp自身肯定是没有连接泄漏的问题的。
谢谢红薯大哥的回复 不过先close再shutdown还是一样不能释放。
bonecp官网有个手工配置是先close再shutdown,jdbc里的示例代码是先shutdown然后再close,我参照的是jdbc的
你的关闭连接代码有问题吧?
怎么先shutdown再去close连接呢?顺序反了
成功把自己挂起来了,标题也改了 第一次提问 。。。。。。。。
。。。。。。。。。。。。。
挂个头像先
红薯说,不会回答直接问红薯的问题
没头像的人也不怎么爱回答。