我在我们的开发环境中修复连接泄漏时遇到了一些麻烦。
我正在使用:Apache Tomcat 8.5 服务器:
- commons-dbcp2-2.1.1.jar
- commons-pool2.2.4.2.jar
- ojdbc6.jar Oracle 驱动程序
- Oracle 客户端 12.1.0.2.0 64 位
我有一些资源声明为:
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/myApp">
<Resource auth="Container" driverClassName="oracle.jdbc.OracleDriver" logAbandoned="true" maxActive="20" maxIdle="10" maxWait="1000" name="user1" password="user1" removeAbandoned="true" removeAbandonedTimeout="120" type="javax.sql.DataSource" url="jdbc:oracle:thin:@192.168.197.53:1521:orcl11g" username="user1" factory="org.apache.commons.dbcp2.BasicDataSourceFactory"/>
<Resource auth="Container" driverClassName="oracle.jdbc.OracleDriver" logAbandoned="true" maxActive="20" maxIdle="20" maxWait="1000" name="user3" password="user3" removeAbandoned="true" removeAbandonedTimeout="120" type="javax.sql.DataSource" url="jdbc:oracle:thin:@192.168.197.53:1521:orcl11g" username="user3" factory="org.apache.commons.dbcp2.BasicDataSourceFactory"/>
<Resource auth="Container" driverClassName="oracle.jdbc.OracleDriver" logAbandoned="true" maxActive="20" maxIdle="10" maxWait="1000" name="user2" password="user2" removeAbandoned="true" removeAbandonedTimeout="120" type="javax.sql.DataSource" url="jdbc:oracle:thin:@192.168.197.53:1521:orcl11g" username="user2" factory="org.apache.commons.dbcp2.BasicDataSourceFactory"/>
</Context>
每次我关闭/重新启动 Tomcat 服务器时,DBCP 池和 Oracle DB (11g) 之间的所有连接都保持打开状态。我想Tomcat应该照顾好这个......
知道如何解决这个问题吗?
编辑:它似乎与开发人员环境有某种关系。在某些计算机上,连接已关闭,但在其他计算机上,它们保持打开状态。我们使用相同的数据库、相同的 Oracle 客户端、驱动程序和相同的 Tomcat 服务器。