`
cmore
  • 浏览: 4019 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

关于异常“事务仍然保持活动状态,不能关闭连接”的处理

 
阅读更多
JWZB: [24 10:41:18,984 HouseKeeper] ProxyConnection.reallyClose(194) | #0005 encountered errors during destruction: 
com.ibm.db2.jcc.b.SqlException: [jcc][t4][10251][10308][3.53.70] 正在连接上执行事务时,请求了 java.sql.Connection.close()。
事务仍然保持活动状态,不能关闭连接。 ERRORCODE=-4471, SQLSTATE=null
	at com.ibm.db2.jcc.b.bd.a(bd.java:660)
	at com.ibm.db2.jcc.b.bd.a(bd.java:60)
	at com.ibm.db2.jcc.b.bd.a(bd.java:120)
	at com.ibm.db2.jcc.b.jb.t(jb.java:1105)
	at com.ibm.db2.jcc.b.jb.w(jb.java:1128)
	at com.ibm.db2.jcc.b.jb.u(jb.java:1114)
	at com.ibm.db2.jcc.b.jb.close(jb.java:1098)
	at org.logicalcobwebs.proxool.ProxyConnection.reallyClose(ProxyConnection.java:192)
	at org.logicalcobwebs.proxool.ConnectionPool.removeProxyConnection(ConnectionPool.java:423)
	at org.logicalcobwebs.proxool.HouseKeeper.sweep(HouseKeeper.java:139)
	at org.logicalcobwebs.proxool.HouseKeeperThread.run(HouseKeeperThread.java:39)
JWZB: [24 10:41:19,015 HouseKeeper] HouseKeeper.sweep(149) | #0005 was active for 320422 milliseconds and has been removed automaticaly. The Thread responsible was named 'DefaultQuartzScheduler_Worker-8', but the last SQL it performed is unknown because the trace property is not enabled.

----------------------------------------------------------无敌分割线-----------------------------------------------------------------------

在使用proxool 时,出现该异常,表明
<property name="maximumActiveTime"></property>设置不合理。

maximumActiveTime 默认是 5 分钟, 含义是一个线程持有一个连接的最长时间,而不管这个连接是否处于 active 状态, 并且如果线程的持有时间超过这个时间的之后会自动清除掉这个连接. 但是很多时候5分钟并不够用, 所以需要在配置文件中进行设置, 其单位为毫秒(ms).

所以在目前的spring.xml文件的连接池配置中,暂时设置为1小时。
<property name="maximumActiveTime"><value>3600000</value></property>

关于设置maximumActiveTime为1小时,是否会负面影响,尚未考证。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics