proxool.default (HouseKeeper.java:149)异常解决办法

proxool连接池警告解决
本文介绍了proxool连接池中出现特定警告的原因及解决方法。该警告与线程持有连接的时间过长有关,默认情况下proxool将自动清除这些连接,从而可能导致程序异常。文章提供了调整配置以延长线程持有连接时间的具体步骤。

近日调试一个项目的时候, 总是在运行一段时间之后出现如下的警告:

2006-05-01 03:26:06,812 WARN [HouseKeeper] proxool.default (HouseKeeper.java:149) - #0001 was active for 324234 milliseconds and has been removed automaticaly. The Thread responsible was named ‘Thread-32′, but the last SQL it performed is unknown because the trace property is not enabled.

然后就会关闭连接数据库的Connection, 导致程序出现Socket Close异常. 后来查阅了官方以及网络上, 终于找到了解决的方法.

产生如上警告的原因是:proxool中有一个参数maximum-active-time 缺省为 5 分钟, 其含义是一个线程持有一个连接的最长时间,而不管这个连接是否处于 active 状态, 并且如果线程的持有时间超过这个时间的之后会自动清除掉这个连接. 但是很多时候5分钟并不够用, 所以需要在配置文件中进行设置, 其单位为毫秒(ms).

2025-10-26 05:09:31,286 INFO A2 - [null] WORKFLOW-RootNode-THREAD-363[weaver.conn.RecordSet:1884] - select * from workflow_flownode where workflowId=25 and nodeId=262 2025-10-26 05:09:31,286 INFO A2 - [null] WORKFLOW-RootNode-THREAD-362[weaver.conn.RecordSet:1402] - select value from workflow_config where name = ?,robotNodeHandleKey 2025-10-26 05:09:31,286 ERROR A2 - [null] WORKFLOW-RootNode-THREAD-363[weaver.conn.RecordSet:1885] - weaver.conn.RecordSet com.microsoft.sqlserver.jdbc.SQLServerException: SHUTDOWN is in progress. at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:217) at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1655) at com.microsoft.sqlserver.jdbc.SQLServerStatement.doExecuteStatement(SQLServerStatement.java:885) at com.microsoft.sqlserver.jdbc.SQLServerStatement$StmtExecCmd.doExecute(SQLServerStatement.java:778) at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7505) at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:2445) at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:191) at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:166) at com.microsoft.sqlserver.jdbc.SQLServerStatement.execute(SQLServerStatement.java:751) at sun.reflect.GeneratedMethodAccessor54.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.logicalcobwebs.proxool.ProxyStatement.invoke(ProxyStatement.java:100) at org.logicalcobwebs.proxool.ProxyStatement.intercept(ProxyStatement.java:57) at $java.sql.Wrapper$$EnhancerByProxool$$38a31c3f.execute(<generated>) at weaver.conn.RecordSet.executeSql(RecordSet.java:1841) at weaver.conn.RecordSet.executeSql(RecordSet.java:973) at weaver.workflow.request.SubWorkflowTriggerService.isAllSubWorkflowEnded(SubWorkflowTriggerService.java:412) at com.engine.workflow.biz.RobotNode.RobotNodeFlowBiz.robotNodeFlow(RobotNodeFlowBiz.java:44) at com.engine.workflow.biz.RobotNode.RobotNodeHandleTask.run(RobotNodeHandleTask.java:65) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)这个错误会导致流程自己提交嘛
最新发布
11-04
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值