DBCP Tomcat连接池泄漏

问题描述:

<Resource name="myConn" auth="Container" 
       type="javax.sql.DataSource" driverClassName="oracle.jdbc.driver.OracleDriver" 
       url="jdbc:oracle:thin:@10.10.10.10.:1521:mydb" 
       username="username" password="password" maxActive="500" maxIdle="50" 
       maxWait="-1" removeAbandoned="true" removeAbandonedTimeout="60"  logAbandoned="true" accessToUnderlyingConnectionAllowed="true" 
/> 

我正在尝试查找连接未关闭的应用程序区域。我在我的上下文文件中添加了removeAbandoned和logAbandoned子句,但是如果我在oracle上检查v $ session,即使在60秒后仍然显示相同数量的活动连接。上面的配置有什么问题吗?DBCP Tomcat连接池泄漏

我会将maxActive设置为更小的值,例如50,然后检查配置是否正常工作。 根据the docs的连接池必须所剩无几执行检查被遗弃的连接:

当可用DB连接低位运行 DBCP将回收和再利用其发现的任何 抛弃数据库连接。

我也将removeAbandonedTimeout更改为20,以便您不必等待很长时间才能检查探测器是否工作正常。

+0

嗨,谢谢你。你指的是哪个文件?我正在看这个文档http://commons.apache.org/dbcp/configuration.html,但不能找到你提到的那一点 – ziggy 2010-11-03 15:32:57

+0

对不起,我忘了链接到文档(http://tomcat.apache.org/tomcat -5.5-DOC/JNDI-数据源-例子-howto.html)。我已经纠正了答案。 – 2010-11-03 15:35:25