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)