Dbcp2拋出org.apache.commons.dbcp2.LifetimeExceededException


 1 三月 24, 2016 5:16:33 下午 org.apache.commons.dbcp2.BasicDataSource onSwallowException
 2 警告: An internal object pool swallowed an Exception.
 3 org.apache.commons.dbcp2.LifetimeExceededException: The lifetime of the connection [14] milliseconds exceeds the maximum permitted value of [10] milliseconds
 4     at org.apache.commons.dbcp2.PoolableConnectionFactory.validateLifetime(PoolableConnectionFactory.java:424)
 5     at org.apache.commons.dbcp2.PoolableConnectionFactory.passivateObject(PoolableConnectionFactory.java:364)
 6     at org.apache.commons.pool2.impl.GenericObjectPool.returnObject(GenericObjectPool.java:581)
 7     at org.apache.commons.dbcp2.PoolableConnection.close(PoolableConnection.java:206)
 8     at org.apache.commons.dbcp2.DelegatingConnection.closeInternal(DelegatingConnection.java:235)
 9     at org.apache.commons.dbcp2.DelegatingConnection.close(DelegatingConnection.java:218)
10     at org.apache.commons.dbcp2.PoolingDataSource$PoolGuardConnectionWrapper.close(PoolingDataSource.java:244)
11     at org.apache.commons.dbutils.DbUtils.close(DbUtils.java:60)
12     at org.apache.commons.dbutils.AbstractQueryRunner.close(AbstractQueryRunner.java:438)
13     at org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:359)
14     at org.apache.commons.dbutils.QueryRunner.query(QueryRunner.java:307)
15     at com.starunion.java.fsccserver.dao.DbUtilsTemplate.getCount(DbUtilsTemplate.java:188)
16     at com.starunion.java.fsccserver.dao.fs.DaoCdrInfo.getSessionCount(DaoCdrInfo.java:33)
17     at com.starunion.java.fsccserver.service.client.ProcClientReqSql.getCdrSessionCount(ProcClientReqSql.java:45)
18     at com.starunion.java.fsccserver.service.client.ClientReqMsgLogicService.procClientRequest(ClientReqMsgLogicService.java:114)
19     at com.starunion.java.fsccserver.thread.client.SocketClientTcpThread.run(SocketClientTcpThread.java:99)

 一、結合我的實際環境,推測這個拋出的原因:

可能是數據庫建立鏈接的時候身份驗證的時候超時。

推測依據:

觀察數據庫鏈接的建立狀態,總是出現花1-5秒的時間。

 

二、進一步測試,覺得原因【不是建鏈】時候的超時。

應該是數據庫查詢(操作)的時間超時,推測依據:

通過mysql后台執行的操作顯示時間花費0.02s或者更多的時候,這個拋出一定出現。

符合拋出顯示>10ms的條件。

那就應該有設置,不可能要求所有的數據庫操作時間花費都小於10ms吧?

 

或者是個BUG?

但是不影響返回后面的查詢結果,所以……這個問題先放一放吧。

或者誰能幫我解答一下?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM