使用dbcp2和ojdbc6 Oracle驱动程序与Tomcat 8发生连接泄漏

时间:2018-08-16 12:40:43

标签: tomcat connection-pooling ojdbc apache-commons-dbcp jdbc-pool

在我们的开发环境中,我在解决连接泄漏方面遇到一些麻烦。

我正在使用:具有以下功能的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服务器。

0 个答案:

没有答案