ITPub博客

首页 > 应用开发 > Java > tomcat连接池泄露的监控和解决

tomcat连接池泄露的监控和解决

原创 Java 作者:haomad 时间:2014-05-13 10:16:54 0 删除 编辑

1. 问题描述

Web程序在tomcat刚开始运行时速度很快,但过一段时间后发现速度变得很慢。

检查日志输出,发现异常如下:

org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool exhausted, cause: 

java.util.NoSuchElementException: Timeout waiting for idle object

同时在SQLServer事件探查器中发现,每执行一次sql语句都要产生Audit login事件,语句执行后产生

Audit logout事件。说明每一次tomcat都是重新打开新的连接。

 

2. 问题解决

tomcat 的数据源定义提供了三个参数:

a. 如果设为true则tomcat自动检查恢复重新利用,没有正常关闭的Connection.(默认是false)

removeAbandoned

true

b. 设定连接在多少秒内被认为是放弃的连接,即可进行恢复利用。

removeAbandonedTimeout

60

c. 输出回收的日志,可以详细打印出异常从而发现是在那里发生了泄漏

logAbandoned

true

 

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29653106/viewspace-1159654/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-05-11

  • 博文量
    46
  • 访问量
    99093