druid 没有无效的配置主动回收连贯
removeAbandoned
及removeAbandonedTimeout
。导致连贯在在应用之前就被回收了。
依据异样显示: statement 曾经敞开了,却还想应用
敞开起因
- 手动敞开,调用了
close()
办法 - 创立了
PreparedStatement
没有及时用。而后数据库连贯发出,主动敞开了statement
解决办法
- 手动敞开
找找代码外面有没有敞开的代码。导致敞开之后还在应用 - 数据库连贯发出
查看是否配置removeAbandoned
为true
且removeAbandonedTimeout
是否小于了业务最大时长
参考连贯:druid 连接池配置参数
druid 回收连贯导致 statement is closed
附异样信息:
java.sql.SQLException: statement is closed
at com.alibaba.druid.pool.DruidPooledStatement.checkOpen(DruidPooledStatement.java:181)
at com.alibaba.druid.pool.DruidPooledPreparedStatement.setString(DruidPooledPreparedStatement.java:366)
at zm.PreparedStatement.setString(PreparedStatement.java:24)
at zm.WinswJava.SwProcSalary.timer_proccess(SwProcSalary.java:121)
at zm.base_daemon.proc_statis_salary.timer_run(proc_statis_salary.java:35)
at zm.base_daemon.proc_statis_salary$1.run(proc_statis_salary.java:25)
at java.util.TimerThread.mainLoop(Timer.java:555)
at java.util.TimerThread.run(Timer.java:505)