JDBC : No operations allowed after connection closed;DataSourceUtils HikariPool;
报错信息:
信息1: com.mysql.cj.exceptions.ConnectionIsClosedException: No operations allowed after connection closed.
信息2: No operations allowed after connection closed。
信息3: JdbcTemplate DataSourceUtils HikariPool
springboot 项目 使用 JdbcTemplate 每天中文12点定时任务开启,存储数据的业务;第一次部署连接正常存储后,到第二天中午,代码就报错了,说明连接已经断开了。。。
Mysql 服务器默认的“wait_timeout”是8小时 在检测到8小时不用,人家会自动断开;自己代码这边还去请求数据库,那么就会报错连接已经断开,导致业务不能继续。
目前感觉应该在yml配置如下:
initialSize: 5 minIdle: 10 maxActive: 1000 #配置获取连接等待超时的时间 maxWait: 60000 #配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 timeBetweenEvictionRunsMillis: 60000 #配置一个连接在池中最小生存的时间,单位是毫秒 minEvictableIdleTimeMillis: 300000 validationQuery: SELECT 1 #指明连接是否被空闲连接回收器(如果有)进行检验.如果检测失败,则连接将被从池中去除. testWhileIdle: true #指明是否在从池中取出连接前进行检验,如果检验失败,则从池中去除连接并尝试取出另一个 testOnBorrow: true #指明是否在归还到池中前进行检验 testOnReturn: false
#连接池配置 spring.datasource.max-idle=10 spring.datasource.max-wait=10000 spring.datasource.min-idle=5 spring.datasource.initial-size=5 spring.datasource.validation-query=SELECT 1 spring.datasource.test-on-borrow=false spring.datasource.test-while-idle=true spring.datasource.time-between-eviction-runs-millis=18800
有可能会解决这问题,还没进行测试验证。
分类:
java
, SpringBoot
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)