<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秒后仍显示相同数量的活动连接。上面的配置有问题吗?
我将设置maxActive为较小的值,例如50,然后检查配置是否正常工作。根据文档,连接池必须运行低才能执行对废弃连接的检查:
maxActive
当可用的数据库连接不足时,DBCP将恢复并回收发现的任何废弃的dB连接。
我也将其更改removeAbandonedTimeout为20,这样您就不必等待很长时间检查检测器是否工作正常。
removeAbandonedTimeout