乐趣区

关于druid:Druid-连接池异常statement-is-closed

druid 没有无效的配置主动回收连贯removeAbandonedremoveAbandonedTimeout。导致连贯在在应用之前就被回收了。

依据异样显示: statement 曾经敞开了,却还想应用

敞开起因

  1. 手动敞开,调用了close() 办法
  2. 创立了PreparedStatement 没有及时用。而后数据库连贯发出,主动敞开了 statement

解决办法

  • 手动敞开
    找找代码外面有没有敞开的代码。导致敞开之后还在应用
  • 数据库连贯发出
    查看是否配置 removeAbandonedtrueremoveAbandonedTimeout 是否小于了业务最大时长

参考连贯: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)
退出移动版