c.a.druid.pool.DruidAbstractDataSource : discard long time none received connection.

╰半夏微凉° 2024-02-17 13:08 79阅读 0赞

一、背景

项目例行巡检的时候,发现服务器一直咔咔的提示警告,但是业务有并未反馈系统存在问题。警告虽不比报错来的炸裂,但是也是不容忽视的。

具体报错信息如下:
在这里插入图片描述

  1. 2023-11-24 02:05:00.002 WARN 7918 --- [schedulerFactoryBean_*****] c.a.druid.pool.DruidAbstractDataSource : discard long time none received connection. , jdbcUrl : jdbc:mysql://这里链接了数据库哈?characterEncoding=utf8&useSSL=false&useTimezone=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true, version : 1.2.4, lastPacketReceivedIdleMillis : 239904

说实话,这玩意还真没见过。
本着不会就问的态度,搜了资料,整理了一下大概的解决方式。

二、处理问题

2.1 调整版本
  1. <dependency>
  2. <groupId>com.alibaba</groupId>
  3. <artifactId>druid</artifactId>
  4. <version>1.2.4</version>
  5. </dependency>

额,可以试一试,但是不一定有用吧

2.2 增加配置
  1. @PostConstruct
  2. public void init(){
  3. // 处理 discard long time none received connection
  4. System.setProperty("druid.mysql.usePingMethod", "false");
  5. }

或者启动类中增加

  1. Properties properties = System.getProperties();
  2. properties.setProperty("druid.mysql.usePingMethod", "false");
  3. SpringApplication.run(App.class, args)

额,应该可以,但我没试。
因为要改代码,需要发布,比较麻烦,不过应该可以实现。

2.3 修改启动命令(推荐)

不需要改代码,就能解决问题,多好。
增加配置:-Ddruid.mysql.usePingMethod=false
原启动命令:

  1. nohup java -jar -Djasypt.encryptor.password='配置文件秘钥' -Dspring.config.location=/app/application.yml /app/test.jar >>/app/test.log 2>&1 &

修改后启动命令:

  1. nohup java -jar -Djasypt.encryptor.password='配置文件秘钥' -Ddruid.mysql.usePingMethod=false -Dspring.config.location=/app/application.yml /app/test.jar >>/app/test.log 2>&1 &

整个就是一个字:嘎嘎好用

2.4 原因

这个就需要耗时间去研究了。
引用参考链接1的大佬的描述:
因为我们开启了testOnBorrow 开关,所以数据库连接会在申请成功后,立即进行一次测试,然后根据数据库连接的最后一次心跳时间,判断是否闲置过长要丢弃掉该数据库连接。
该开关主要在从连接池获取时立即检查连接的有效性。
而不开启testOnBorrow则会在保持连接过程中不断检查连接的闲置情况,对闲置过长的连接回收。
com.alibaba.druid.util.MySqlUtils#getLastPacketReceivedTimeMs 这个方法会返回连接最后一次收到消息的时间。

感觉类似于在Maven打包的过程中,那个test的作用。

启动命令中的 配置文件秘钥 可参考:SpringBoot集成jasypt,加密yml配置文件

参考链接:
1、https://blog.csdn.net/weixin\_46080554/article/details/129878573
2、https://www.cnblogs.com/shenjianjun/p/14717369.html
3、https://blog.csdn.net/Mou\_O/article/details/128703853

发表评论

表情:
评论列表 (有 0 条评论,79人围观)

还没有评论,来说两句吧...

相关阅读