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


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.

[color=gray]----------------------------------------------------------无敌分割线-----------------------------------------------------------------------[/color]

在使用proxool 时,出现该异常,表明
[color=red][/color]设置不合理。

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

所以在目前的spring.xml文件的连接池配置中,暂时设置为1小时。
[color=green]3600000[/color]

[b][color=red]关于设置maximumActiveTime为1小时,是否会负面影响,尚未考证。[/color][/b]

你可能感兴趣的:(关于异常“事务仍然保持活动状态,不能关闭连接”的处理)