Jdbc Oracle DB连接未从Tomcat 8中的连接池中释放

Jdbc Oracle DB连接未从Tomcat 8中的连接池中释放,jdbc,java-8,connection-pooling,tomcat8,ojdbc,Jdbc,Java 8,Connection Pooling,Tomcat8,Ojdbc,我们正在将Tomcat6、java 6和Oracle 10g web应用程序迁移到Tomcat8、java 8和Oracle 10g。我们的应用程序在迁移后工作正常,但在Tomcat关闭后,连接池中的初始连接(initialSize=“5”)没有释放。当第二次启动tomcat时,它将再创建5个到池的初始连接。我正在server.xml中使用以下资源配置 <Resource name="TestAppDataSource" auth="Container"

我们正在将Tomcat6、java 6和Oracle 10g web应用程序迁移到Tomcat8、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驱动程序。请帮助我是否错过任何配置。

请尝试以下选项:

removeAbandoned = true 
(布尔值)标记,用于删除超过 删除BandonedTimeout。如果设置为true,则考虑连接 如果其使用时间超过 RemoveBandonedTimeout将此设置为true可以恢复db 来自无法关闭连接的应用程序的连接。看见 此外,默认值为false

Tomcat现在使用JDBC连接池org.apache.Tomcat.JDBC.Pool,它是apache Commons DBCP连接池的替代品

RemoveBandoned是JDBC连接池的一个选项


尝试以下选项:

removeAbandoned = true 
(布尔值)标记,用于删除超过 删除BandonedTimeout。如果设置为true,则考虑连接 如果其使用时间超过 RemoveBandonedTimeout将此设置为true可以恢复db 来自无法关闭连接的应用程序的连接。看见 此外,默认值为false

Tomcat现在使用JDBC连接池org.apache.Tomcat.JDBC.Pool,它是apache Commons DBCP连接池的替代品

RemoveBandoned是JDBC连接池的一个选项


您必须将
closeMethod=“close”
添加到context.xml中的JDBC资源中。这样,Tomcat可以正确地释放到数据库的挂起连接。

您必须将
closeMethod=“close”
添加到context.xml中的JDBC资源中。这样,Tomcat可以正确地释放到数据库的挂起连接。

在Tomcat JVM终止后,您已经将套接字连接到Oracle了吗?很难相信。你在网络层登记了吗?或者您的问题是其他原因吗?在Tomcat JVM终止后,您已将套接字连接到Oracle?很难相信。你在网络层登记了吗?或者你的问题是什么?