discard long time none received connection

使用DruidDataSource 做数据源时,如果创建的连接在长时间得不到调用后会报如题所示的错误

discard long time none received connection. ,
 jdbcUrl : jdbc:mysql://localhost:3306/test?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=CTT, 
 jdbcUrl : jdbc:mysql://localhost:3306/test?autoReconnect=true&useUnicode=true&characterEncoding=utf8&serverTimezone=CTT, 
 lastPacketReceivedIdleMillis : 299303

解决办法

第一种,设置参数,取消测试

setTestWhileIdle(false)

第二种,增加配置,没试过

druid.mysql.usePingMethod=false

第三种

Druid 默认每 60s 运行一次空闲连接回收器,所以超过 60s 没有使用的连接会被释放,并打印 WARN 日志 discard long time none received connection 。 出现这个警告可能是业务中执行 SQL 操作的间隔时间比较长。

解决办法是,将连接空闲时间 timeBetweenEvictionRunsMillis 设置大一些,比如设置为 5 分钟:

 spring.datasource.druid.time-between-eviction-runs-millis=300000

第四种

最新消息 使用1.1.22的版本 或者升级到1.2.9或以上

我的理解是testwhileidle可以是为true,但是这时必须给validationquery
添加校验的sql语句,但是我添加了依然报错,所以我就不提了

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值