当我在我的项目中使用druid spring boot starter,版本为1.1.23时,我的日志文件中有一些错误,如下所示:
2020-07-20 09:01:18.859 [http-nio-0.0.0.0-8081-exec-5] ERROR c.a.d.pool.DruidAbstractDataSource- discard long time none received connection. , jdbcUrl : jdbc:mysql://xxxxxx.mysql.zhangbei.rds.aliyuncs.com:3306/xxxx_prd?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8, jdbcUrl : jdbc:mysql://rxxxx.mysql.zhangbei.rds.aliyuncs.com:3306/xxxx_prd?autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8, lastPacketReceivedIdleMillis : 369797
但如果我把入门版改为1.1.22,这个错误就会消失。
原提问者GitHub用户micheal0792
Druid Spring Boot starter connection经常被discard主要可能原因是:
连接超时时间太短
存在查询时间过长的SQL
后端DB重启
Druid统计和监控失效
Druid版本存在Bug
解决方法主要为:
增加connectionTimeout时间
优化超时SQL
Druid监控统计同步
升级到最新Druid版本
在使用Druid Spring Boot Starter 1.1.23版本时,你的日志文件中出现了一些错误日志。这些错误日志表明存在长时间没有接收到连接的情况,并显示了相关的jdbcUrl和lastPacketReceivedIdleMillis。
这种错误通常是由Druid连接池的丢弃长时间无接收连接功能引起的。Druid连接池会检查连接的空闲时间,如果连接在一定时间内没有被使用,就会被判定为长时间无接收连接并丢弃掉。
我设置了这个就解决了
spring.datasource.druid.test-while-idle: false
原回答者GitHub用户1120247833
这是一个有关Druid Spring Boot Starter版本1.1.23的错误。根据日志信息,它显示了一个"discard long time none received connection"的错误。这个错误表明连接在长时间内没有接收到数据包。
你提到将版本改为1.1.22后该错误消失了,这意味着版本1.1.22可能修复了这个问题或者没有引入相同的错误。
如果你对项目没有特殊要求,可以继续使用版本1.1.22,以避免出现这个错误。但是请记住,使用旧版本可能会错过一些新功能和修复的bug。如果你需要使用版本1.1.23的特定功能或修复的bug,请尝试查看该版本的文档、问题跟踪器或社区支持来解决这个问题。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。