DBCP Tomcat 连接池泄漏

3
<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秒。上面的配置有问题吗?

1个回答

2
我会将maxActive设置为较小的值,如50,然后检查配置是否正常工作。根据文档,连接池必须运行低才能执行检查遗弃连接的操作:

当可用的数据库连接变少时, DBCP会恢复并回收任何 发现的遗弃的dB连接。

我也会将removeAbandonedTimeout更改为20,这样您就不必等待太长时间来检查检测器是否正常工作。

嗨,谢谢你。你指的是哪个文档?我正在查看这个文档http://commons.apache.org/dbcp/configuration.html,但找不到你提到的那一部分。 - ziggy
抱歉,我忘了附上文档链接 (http://tomcat.apache.org/tomcat-5.5-doc/jndi-datasource-examples-howto.html)。我已经更正了答案。 - Piotr Czapla

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接