Tomcat 7-忽略数据库连接池参数(DBCP)

时间:2019-05-07 13:18:07

标签: java tomcat apache-commons-dbcp

我们面临的问题是,在重新启动Tomcat 7期间,与数据库的连接数量激增。

我们的配置如下,在Tomcat的context.xml上设置:

<Resource auth="Container"
            driverClassName="oracle.jdbc.driver.OracleDriver"
            initialSize="1"
            maxActive="10"
            maxAge="600000"
            maxIdle="5"
            maxOpenPreparedStatements="200"
            maxWait="10000"
            minEvictableIdleTimeMillis="60000"
            minIdle="0"
            name="jdbc/backoffice"
            password="backoffice"
            poolPreparedStatements="true"
            rollbackOnReturn="true"
            testWhileIdle="true"
            timeBetweenEvictionRunsMillis="6000000"
            type="javax.sql.DataSource"
            url="jdbc:oracle:thin:@127.0.0.1:1521:DATABASE"
            username="backoffice"
            validationQuery="SELECT SYSDATE FROM DUAL"
            removeAbandoned="true"
            removeAbandonedTimeout="60"
            logAbandoned="true"
    />

重新启动Tomcat之后,打开的连接数接近700。 战争的重新部署(重命名为“ .war_bk”,重命名为“ .war”)可以解决此问题。

为什么会这样? 我们可以做些什么?

1 个答案:

答案 0 :(得分:3)

还为maxConnLifetimeMillis

添加值
  

maxConnLifetimeMillis -1连接的最大生存时间(以毫秒为单位)。超过此时间后,连接将无法进行下一次激活,钝化或验证测试。零或更少的值表示连接具有无限的寿命。

还有maxTotal

  

maxTotal 8可以同时从该池中分配的活动连接的最大数目,如果没有限制则为负。

您可以将validationQuery更改为更简单的查询

validationQuery="SELECT 1 FROM DUAL"