簡體   English   中英

簽出資源過期,將被銷毀:com.mchange.v2.c3p0.impl.NewPooledConnection@437c5a2d issue tomcat 7 c3p0

[英]A checked-out resource is overdue, and will be destroyed: com.mchange.v2.c3p0.impl.NewPooledConnection@437c5a2d issue tomcat 7 c3p0

we use tomcat 7 and c3p0 as a connection pool.But since starting tomcat every 3 seconds i see many warnings: 17-Jan-2023 20:35:49.259 INFO [C3P0PooledConnectionPoolManager[identityToken->z8kfltat1hfo3gq19fe7ui|2e3d1388]-AdminTaskTimer] com.mchange .v2.resourcepool.BasicResourcePool。 簽出資源過期,將被銷毀:com.mchange.v2.c3p0.impl.NewPooledConnection@7abb733e

這是連接池配置:17-Jan-2023 20:39:4.647 INFO [http-nio-8080-exec-2] com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource。 正在初始化 c3p0 池... com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 20,acquireRetryAttempts -> 30,acquireRetryDelay -> 1000,autoCommitOnClose -> false,automaticTestTable -> null,breakAfterAcquireFailure -> false,checkoutTimeout -> 0 , connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, contextClassLoaderSource -> caller, dataSourceName -> z8kfltat1hftvt811qptc9|2e3d1388, debugUnreturnedConnectionStackTraces -> false, description -> OLTP Connection, driverClass -> oracle.jdbc.driver .OracleDriver, extensions -> {}, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, identityToken -> z8kfltat1hftvt811qptc9|2e3d1388, idleConnectionTestPeriod -> 300, initialPoolSize -> 3, jdbcUrl -> jdbc:oracle:thin:@192.168.0. xx:xxxx:xxxx,maxAdministrativeTaskTime -> 0,maxConnectionAge -> 0,maxIdleTime -> 3 0,maxIdleTimeExcessConnections -> 30,maxPoolSize -> 500,maxStatements -> 0,maxStatementsPerConnection -> 0,minPoolSize -> 50,numHelperThreads -> 3,preferredTestQuery -> SELECT 1 FROM dual,privilegeSpawnedThreads -> false,屬性 -> {user = , password= }, propertyCycle -> 0, statementCacheNumDeferredCloseThreads -> 0, testConnectionOnCheckin -> true, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 12, userOverrides -> {}, usesTraditionalReflectiveProxies -> false]

PS對不起我的英語:)

我已經閱讀了這里發布的每一個問題,嘗試了一些,但沒有任何線索。我們最終為每個連接調用 connection.close() 。

您已將unreturnedConnectionTimeout設置為 12 秒。 您看到的消息是由於Connection沒有及時返回到池中,從而觸發了這些Connection的銷毀。

盡管您聲明在finally塊中調用Connection.close() ,但您對Connection的使用花費的時間比您預期的要長(您的數據庫操作花費的時間超過 12 秒),或者您正在泄漏Connection

c3p0有一個工具可以調試明顯泄露的Connection debugUnreturnedConnectionStackTraces設置為true (僅用於調試,它具有性能成本),您將看到檢查出 c3p0 超時並銷毀的Connection的堆棧跟蹤。

如果您的數據庫操作有時需要超過 12 秒,只需將unreturnedConnectionTimeout設置為更大的值。 如果你發現有泄漏,你會看到在哪里修復它。

此處查看文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM