【异常信息】:
<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