一尘不染

DBCP Tomcat连接池泄漏

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秒后仍显示相同数量的活动连接。上面的配置有问题吗?


阅读 299

收藏
2020-06-16

共1个答案

一尘不染

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

当可用的数据库连接不足时,DBCP将恢复并回收发现的任何废弃的dB连接。

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

2020-06-16