欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決Spring Boot中Druid連接池“discard long time none received connection“警告

 更新時間:2025年03月28日 10:07:24   作者:好奇的菜鳥  
本文主要介紹了解決Spring Boot中Druid連接池“discard long time none received connection“警告,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

在使用Spring Boot結合Druid連接池時,開發(fā)者可能會遇到"discard long time none received connection"的警告信息。雖然這通常不會影響應用程序的正常運行,但這些警告信息可能會讓人感到困擾。本文將探討這個問題的原因,并提供幾種解決方法。

問題現象

在使用Druid連接池的新版本(如1.2.5)時,控制臺可能會時不時打印以下警告:

WARN  com.alibaba.druid.pool.DruidAbstractDataSource - discard long time none received connection. , jdbcUrl : [your-jdbc-url]

這表明Druid連接池檢測到某些數據庫連接已經超過了一定時間沒有活動,因此被標記為長時間空閑并被丟棄。

產生原因

經過查看Druid的源碼,發(fā)現這個問題的根源在于Druid連接池對MySQL連接的處理邏輯。在DruidAbstractDataSource類的testConnectionInternal方法中,如果連接空閑時間超過60秒,Druid會認為該連接已經不再有效,并將其丟棄。

if (valid && isMySql) {
    long lastPacketReceivedTimeMs = MySqlUtils.getLastPacketReceivedTimeMs(conn);
    if (lastPacketReceivedTimeMs > 0 && 
        mysqlIdleMillis >= timeBetweenEvictionRunsMillis) {
        discardConnection(holder);
        LOG.warn("discard long time none received connection. " +
                 ", jdbcUrl : " + jdbcUrl + ", version : " + VERSION.getVersionNumber() +
                 ", lastPacketReceivedIdleMillis : " + mysqlIdleMillis);
        return false;
    }
}

解決辦法

1. 修改Druid配置

一種解決方法是修改Druid的配置,通過設置druid.mysql.usePingMethod=false來避免使用MySQL的Ping方法來檢查連接有效性。這可以通過以下兩種方式實現:

  • 運行時配置:在運行參數中增加-Ddruid.mysql.usePingMethod=false
  • Spring配置:在Spring的配置文件中添加:
spring:
  datasource:
    druid:
      mysql:
        usePingMethod: false

2. 調整數據庫配置

另一種方法是調整數據庫的配置,例如MySQL的wait_timeout參數,以增加數據庫端的空閑超時時間,從而減少因為數據庫端關閉連接而導致Druid報錯的情況。

3. 代碼層面的優(yōu)化

最后,確保應用程序在使用數據庫連接時,能夠及時釋放資源,避免不必要的連接泄露。

結語

雖然"discard long time none received connection"的警告可能不會直接影響應用程序的運行,但解決這個問題可以提高應用程序的穩(wěn)定性,并減少不必要的資源浪費。希望本文提供的方法能夠幫助你解決這個問題。

到此這篇關于解決Spring Boot中Druid連接池“discard long time none received connection“警告的文章就介紹到這了,更多相關Spring Boot Druid連接池警告內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java?IO流之StringWriter和StringReader用法分析

    Java?IO流之StringWriter和StringReader用法分析

    這篇文章主要介紹了Java?IO流之StringWriter和StringReader用法分析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • JDK14性能管理工具之Jconsole的使用詳解

    JDK14性能管理工具之Jconsole的使用詳解

    JConsole是JDK自帶的管理工具,在JAVA_HOME/bin下面,直接命令JConsole即可開啟JConsole。接下來通過本文給大家分享JDK14性能管理工具之Jconsole的使用,感興趣的朋友一起看看吧
    2020-05-05
  • Java如何獲取HttpServletRequest請求參數

    Java如何獲取HttpServletRequest請求參數

    我們常需要接口接收第三方推送的數據,由于第三方可能不具備開發(fā)能力,我們需要自行解析推送的數據格式,通過HttpServletRequest,我們可以解析字符串、JSON、XML以及文件等多種數據類型,本文介紹了如何在Java中使用HttpServletRequest獲取請求參數,感興趣的朋友一起看看吧
    2024-11-11
  • springboot一個自定義注解如何搞定多線程事務

    springboot一個自定義注解如何搞定多線程事務

    文章介紹了Spring?Boot中使用`@Async`注解進行聲明式多線程編程的方法,以及如何通過自定義注解和AOP實現多線程事務控制,同時,還解釋了`CountDownLatch`的使用場景及其工作原理
    2024-12-12
  • SpringBoot實現ImportBeanDefinitionRegistrar動態(tài)注入

    SpringBoot實現ImportBeanDefinitionRegistrar動態(tài)注入

    在閱讀Spring Boot源碼時,看到Spring Boot中大量使用ImportBeanDefinitionRegistrar來實現Bean的動態(tài)注入,它是Spring中一個強大的擴展接口,本文就來詳細的介紹一下如何使用,感興趣的可以了解一下
    2024-02-02
  • Java設計模式之中介者模式(Mediator Pattern)簡介

    Java設計模式之中介者模式(Mediator Pattern)簡介

    這篇文章主要介紹了Java設計模式之中介者模式(Mediator Pattern),需要的朋友可以參考下
    2014-07-07
  • SpringBoot訪問接口自動跳轉login頁面的問題及解決

    SpringBoot訪問接口自動跳轉login頁面的問題及解決

    這篇文章主要介紹了SpringBoot訪問接口自動跳轉login頁面的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • springmvc實現跨服務器文件上傳功能

    springmvc實現跨服務器文件上傳功能

    這篇文章主要為大家詳細介紹了springmvc實現跨服務器文件上傳功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • Spring Boot 2.2 正式發(fā)布,大幅性能提升 + Java 13 支持

    Spring Boot 2.2 正式發(fā)布,大幅性能提升 + Java 13 支持

    隨著 Spring Framework 5.2.0 成功發(fā)布之后,Spring Boot 2.2 也緊跟其后,發(fā)布了第一個版本:2.2.0。下面就來一起來看看這個版本都更新了些什么值得我們關注的內容
    2019-10-10
  • maven依賴關系中的<scope>provided</scope>使用詳解

    maven依賴關系中的<scope>provided</scope>使用詳解

    這篇文章主要介紹了maven依賴關系中的<scope>provided</scope>使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07

最新評論