"orcibly releasing inactive connection" 异常处理

【异常信息】:

<2014-12-25 下午05时12分25秒 CST> <Warning> <JDBC> 
<BEA-001153> <Forcibly releasing inactive connection 
"weblogic.jdbc.wrapper.PoolConnection_oracle_jdbc_driver_T4CConnection@531b381"
 back into the connection pool "SinobrpsDataSourceOne", currently 
reserved by: java.lang.Exception
     at weblogic.jdbc.common.internal.ConnectionEnv.setup(ConnectionEnv.java:318)
     at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:344)
     at weblogic.common.resourcepool.ResourcePoolImpl.reserveResource(ResourcePoolImpl.java:322)
     at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:438)
     at weblogic.jdbc.common.internal.ConnectionPool.reserve(ConnectionPool.java:317)
     at weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:93)
     at weblogic.jdbc.common.internal.ConnectionPoolManager.reserve(ConnectionPoolManager.java:106)
     at weblogic.jdbc.pool.Driver.connect(Driver.java:149)
     at weblogic.jdbc.jts.Driver.getNonTxConnection(Driver.java:652)
     at weblogic.jdbc.jts.Driver.connect(Driver.java:127)
     at weblogic.jdbc.common.internal.RmiDataSource.getConnection(RmiDataSource.java:355)
     at com.sinosoft.sysframework.reference.DBManager.open(DBManager.java:72)
     at com.sinosoft.sinobrps.main.release.ComputeHistory.insertComputeTableA(ComputeHistory.java:65)
     at com.sinosoft.sinobrps.main.check.CheckComputeResult.conditionTwo(CheckComputeResult.java:210)
     at com.sinosoft.sinobrps.main.check.CheckComputeResult.checkResult(CheckComputeResult.java:126)
     at com.sinosoft.sinobrps.main.check.CheckThread.run(CheckThread.java:17)
     at java.lang.Thread.run(Thread.java:619)
.>
<2014-12-25
 下午05时12分25秒 CST> <Notice> <Stdout> <BEA-000000> 
<[14-12-25 17:12:25,972] [ERROR] [ComputeHistory:insertComputeTableA 
79] java.sql.SQLException: Connection has already been closed.>
<2014-12-25
 下午05时12分25秒 CST> <Notice> <Stdout> <BEA-000000> 
<[14-12-25 17:12:25,995] [INFO ] [QuartzManager:pauseJob 141] 成功暂停 
'CheckVersionTask' 定时器。>
<2014-12-25 下午05时12分25秒 CST> 
<Notice> <Stdout> <BEA-000000> <[14-12-25 
17:12:25,996] [ERROR] [ComputeHistory:insertComputeTableA 83] 
java.sql.SQLException: Connection has already been closed.>
<2014-12-25
 下午05时12分25秒 CST> <Notice> <Stdout> <BEA-000000> 
<[14-12-25 17:12:25,996] [ERROR] [ComputeHistory:insertComputeTableA 
84] 校验通过时,计算历史表存储数据异常!>


【原因分析】:

由于WebLogic内部设置了对于数据源超时非活动连接关闭机制,但是由于我们程序中执行SQL处理了数据量较大,最终导致我们程序执行的时间已经超出WebLogic内设置的数据源超时非活动连接时间,程序中SQL还没有执行完成,WebLogic就强制关闭了程序和数据库之间的连接。


【解决方案】:

1、首先打开所要设置的数据源。

2、然后设置非活动超时连接时间。

注意:要设置关闭非活动连接的总时间,除以4 就是这个参数所有填写值,此参数值单位为秒。

【参考资料】:

http://www.blogjava.net/fjin/archive/2013/10/10/404841.html

http://impradeep.com/forcibly-releasing-inactive-connection-weblogic-jdbc-wrapper-poolconnection_oracle_jdbc_driver_t4cconnectiond72/



你可能感兴趣的:("orcibly releasing inactive connection" 异常处理)