Oracle数据库连接未从Tomcat 8中的连接池释放

时间:2015-11-15 04:47:00

标签: jdbc java-8 connection-pooling tomcat8 ojdbc

我们正在将Tomcat6,Java 6和Oracle 10g Web应用程序迁移到Tomcat 8,Java 8和Oracle 10g。我们的应用程序在迁移后工作正常,但在Tomcat关闭后未在连接池中提供初始连接(initialSize =" 5")。当第二次启动tomcat时,它创建了5个更多的初始连接池。我在server.xml中使用以下资源配置

<Resource   name="TestAppDataSource"
            auth="Container"
            factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
            type="javax.sql.DataSource"
            driverClassName="oracle.jdbc.OracleDriver"
            initialSize="5"
            maxActive="40"
            maxIdle="40"
            minIdle="5"
            timeBetweenEvictionRunsMillis="30000"
            minEvictableIdleTimeMillis="30000"
            maxWait="10000"
            testWhileIdle="true"
            testOnBorrow="true"
            testOnReturn="false"
            validationQuery="SELECT 1 from dual"
            validationInterval="30000" 
            logAbandoned="true"
            removeAbandonedTimeout="30"
            removeAbandonedOnBorrow="true"
            removeAbandonedOnMaintenance="true"
            suspectTimeout="300"
            maxAge="60000"
            url="jdbc:oracle:thin:@//IP_ADDRESS:1521/SCHEMA_NAME"
            username="USER_NAME"
            password="PASSWORD" />

以下应用程序META_INF / context.xml中的资源链接配置

<ResourceLink
    name="APP_TEST"
    global="TestAppDataSource" 
    type="javax.sql.DataSource"
/>

我正在使用ojdbc7.jar作为oracle驱动程序。请帮助我是否错过任何配置..

2 个答案:

答案 0 :(得分:0)

尝试使用以下选项:

removeAbandoned = true 
  

(boolean)标记,如果它们超过,则删除已放弃的连接   removeAbandonedTimeout。如果设置为true,则考虑连接   如果使用时间超过,则放弃并有资格获取   removeAbandonedTimeout将此设置为true可以恢复db   来自无法关闭连接的应用程序的连接。看到   logAbandoned默认值为false。

Tomcat现在使用JDBC连接池org.apache.tomcat.jdbc.pool,它是Apache Commons DBCP连接池的替代或替代。

removeAbandoned是JDBC连接池的选项

https://tomcat.apache.org/tomcat-8.0-doc/jdbc-pool.html

答案 1 :(得分:0)

您必须在context.xml中将body { padding-bottom: 0px !important; margin-bottom: -40px !important; } footer.well{ margin-bottom: -20px !important; } 添加到JDBC资源。这样,Tomcat就可以正确释放与数据库的挂起连接。