mysql 连接8小时问题 Could not open JPA EntityManager for transaction
原因: 数据库的链接默认的超时时间是8个小时,如果在8个小时里没有访问,那么这个连接就会被回收
如下配置tomcat连接池(log-data-server-yy工程中的配置)
#tomcat连接池配置
spring.datasource.tomcat.initial-size=10
spring.datasource.tomcat.max-active=100
spring.datasource.tomcat.max-idle=20
#当连接池达到最大连接个数,额外的连接等待时间,超过这个时间没有连接释放则跑出异常(单位:毫秒)
spring.datasource.tomcat.max-wait=20000
#一个连接生命的最大时长为1hour,包括已经被使用的时间(单位:毫秒)
spring.datasource.tomcat.max-age=3600000
#连接借出时是否测试(影响性能)
spring.datasource.tomcat.test-on-borrow=false
#连接还回时是否测试
spring.datasource.tomcat.test-on-return=false
#测试的sql语句,测试过的连接不算是“被使用”了,还算是空闲的
spring.datasource.tomcat.validation-query=select current_date()
#验证查询超时时间,超过该值则认为测试失败将被回收(单位:秒)
spring.datasource.tomcat.validation-query-timeout=3
#一组配置
#空闲时是否测试
spring.datasource.tomcat.test-while-idle=true
#每次检测的连接个数
spring.datasource.tomcat.num-tests-per-eviction-run=10
#每隔5min做一次回收检测(单位:毫秒)
spring.datasource.tomcat.time-between-eviction-runs-millis=300000
#回收空闲时间超过10min(单位:毫秒)
spring.datasource.tomcat.min-evictable-idle-time-millis=600000
#一组配置
#是否自动回收超时连接
spring.datasource.tomcat.remove-abandoned=true
#自动回收超时的时间(单位:秒) 是指闲置连接数量超过max_idle后,超过的连接在达到时间后则舍弃???
spring.datasource.tomcat.remove-abandoned-timeout=120
#连接池收回空闲的活动连接时是否打印消息
spring.datasource.tomcat.log-abandoned=false

浙公网安备 33010602011771号