最近公司一个JDK1.4的老项目升级了JDK1.6后BUG不断,最可恶的连接池被占满。

因为是使用tomcat的连接池所以在config下中添加

<Resource name="jdbc/****" auth="Container"
type="javax.sql.DataSource"
username="****"
password="*****"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
url="jdbc:sqlserver://*******"
maxActive="200"
maxIdle="50"
maxWait="600000" logAbandoned="true"
removeAbandoned="true"
removeAbandonedTimeout="600" />

这样tomcat会打印出未关闭的数据库连接的代码块。

logAbandoned="true"
是开启打印回收连接日志
removeAbandonedTimeout="600"
是设置连接超时时间,注意单位是秒
removeAbandoned="true" 
是数据库连接不够用回收超时的连接
通过tomcat打印的日志可以找到未关闭连接的代码块
org.apache.tomcat.dbcp.dbcp.AbandonedTrace$AbandonedObjectException: DBCP object
created 2016-10-10 11:01:47 by the following code was never closed:
at org.apache.tomcat.dbcp.dbcp.AbandonedTrace.init(AbandonedTrace.java:9
0)
at org.apache.tomcat.dbcp.dbcp.AbandonedTrace.<init>(AbandonedTrace.java
:73)
at org.apache.tomcat.dbcp.dbcp.DelegatingResultSet.<init>(DelegatingResu
ltSet.java:81)
at org.apache.tomcat.dbcp.dbcp.DelegatingResultSet.wrapResultSet(Delegat
ingResultSet.java:104)
at org.apache.tomcat.dbcp.dbcp.DelegatingStatement.executeQuery(Delegati
ngStatement.java:208)
at org.apache.tomcat.dbcp.dbcp.DelegatingStatement.executeQuery(Delegati
ngStatement.java:208)
at org.apache.jsp.*****************.appformlist_jsp._jspService(ap
pformlist_jsp.java:1317)

 从上可以看到appformlist_jsp的1317行没有关闭

利用反编译工具找到tomcat的work目录下的appformlist_jsp.class

关闭这位置数据库连接。

Tomcat回收连接的更多相关文章

  1. Tomcat配置(三):tomcat处理连接的详细过程

    */ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...

  2. JRockit Mission Control建立到Tomcat的连接(windows)

    http://www.360doc.com/content/10/0928/16/203871_57086538.shtml  蓝海豹 JRockit Mission Control建立到Tomcat ...

  3. Tomcat(三):tomcat处理连接的详细过程

    Tomcat系列文章:http://www.cnblogs.com/f-ck-need-u/p/7576137.html tomcat可以处理静态资源的请求,也可以通过servlet处理动态资源的请求 ...

  4. spring boot(10)-tomcat jdbc连接池

    默认连接池 tomcat jdbc是从tomcat7开始推出的一个连接池,相比老的dbcp连接池要优秀很多.spring boot将tomcat jdbc作为默认的连接池,只要在pom.xml中引入了 ...

  5. Spring boot (12) tomcat jdbc连接池

    默认连接池 tomcat jdbc是从tomcat7开始推出的一个连接池,相比老的dbcp连接池要优秀很多,spring boot将tomcat jdbc作为默认的连接池,只要在pom.xml中引入了 ...

  6. 解决Tomcat数据连接池无法释放

    近段时间,公司的检测中心报表系统(SMC)的开发人员时不时找到我,说用户老是出现无法登录的情况.前些日子因为手头上 有Jboss集群的测试工作,发现用户不能登录时,都是在Tomcat中将这个项目Rel ...

  7. (转)Tomcat数据源连接池加密

    文章来源 :http://my.oschina.net/cimu/blog/164757 我们在使用Tomcat数据库连接池的时候都是明文存储数据库用户名和密码的,例如: <Resource n ...

  8. Tomcat 长连接与短连接性能测试

    环境: 操作系统:centos 6.5 x64 cpu:32 core 内存:  32G web服务器:tomcat 6.x jdk :1.6x 测试环境: 操作系统:centos 6.5 x64 c ...

  9. tomcat+oracle连接池

    tomcat 5.5.23 oracle 10g 全局配置 一.tomcat目录\common\lib下添加包ojdbc14.jar. 二.tomcat目录\conf\server.xml的<G ...

随机推荐

  1. LeetCode 【318. Maximum Product of Word Lengths】

    Given a string array words, find the maximum value of length(word[i]) * length(word[j]) where the tw ...

  2. eclipse android sdk content loader一直显示0%的问题解决

    今天上班启动eclipse,发现eclipse 一直卡在android sdk content loader的地方,一直显示为0%.百度后发现很多都是一下解决方法:  关闭Eclipse,删掉Ecli ...

  3. logrotate机制与原理[转载]

    http://blog.lightxue.com/how-logrotate-works/ 日志实在是太有用了,它记录了程序运行时各种信息.通过日志可以分析用户行为,记录运行轨迹,查找程序问题.可惜磁 ...

  4. LeetCode---Hash Table

    299. Bulls and Cows 思路:抽屉法,放进secrets,拿出guess,最终cows = cows - bulls public String getHint(String secr ...

  5. tomcat war部署根目录下

    一个很取巧的办法,步骤如下: 1. 删除webapp下所有文件 cd ${TOMAT_HOME}/webapps && rm -rf * 2. copy待部署war到webapps目录 ...

  6. 在ASP.NET Web API中使用OData

    http://www.alixixi.com/program/a/2015063094986.shtml 一.什么是ODataOData是一个开放的数据协议(Open Data Protocol)在A ...

  7. 关于Maven的一些记录

    Eclipse-Mars4.5自带Maven插件,自己重新下载之后将不兼容. 可以在图中位置设置jar包路径. 可以在Eclipse新建Dynamic Web Project项目,然后在项目上右键=& ...

  8. Gemfile分平台加载gem

    Gemfile分平台加载gem 区分平台以便加载不同的web server,象tzinfo-data只适用于windows # Windows does not include zoneinfo fi ...

  9. 多个Python环境的构建:基于virtualenv 包

    假如一台计算中安装多个Python版本,而不同版本可能会pip安装不同的包,为了避免混乱,可以使用virtualenv包隔离各个Python环境,实现一个Python版本对应一套开发环境. 本地概况: ...

  10. 使用jedis操作redis

    一 连通性 1. 简单代码测试连通性 Jedis jedis = new Jedis(".......", 6379); String keys = "name" ...