[转载]跟踪 c3p0 连接池连接泄漏

跟踪 c3p0 连接池连接泄漏

 

最近的项目碰到了连接泄漏的问题。 项目用的是Spring + Hibernate + c3p0,具体表现为,系统

运行一段时间后,用户打开登录页后,执行登录无响应,查看后台日志,提示Could not open

Connection。将c3p0日志级别调成debug之后,发现c3p0报告连接数已经达到设置的上限。 之前检

查连接泄漏时,使用的是极低效的办法,目测代码,所以问题解决起来颇费周折,效果还不好。 今

天查了一下c3p0官方手册,c3p0官方提供了两个参数,能够很方便的检查没有正确返回连接池的连

接。
 
debugUnreturnedConnectionStackTraces
 默认为false,如果此参数设置为true,当所有连接用完的时候,会以堆栈信息显示哪些代码使用

了连接。由于跟踪连接状态会产生额外的消耗,如果程序稳定,应该将此参数恢复为默认值false。
 
unreturnedConnectionTimeout
 设置连接被checkout后,经过多长时间还未返还连接池,则连接缓冲池直接Kill该连接,此时,结

合debugUnretrunedConnectionStackTraces,我们可以知道是什么程序持有了连接,并且没有返回

。这个方法很暴力,有可能造成应用程序不稳定,所以,如果真的出现了连接泄漏,一时半会又找

不到问题点所在,可以暂时使用这个方法让应用程序跑起来。
 
参考:c3p0官方手册

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值