最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決Druid動態(tài)數(shù)據(jù)源配置重復(fù)刷錯誤日志的問題

 更新時間:2021年05月12日 14:31:53   作者:小妖云汐  
使用druid數(shù)據(jù)庫連接池實現(xiàn)動態(tài)的配置數(shù)據(jù)源功能,在配置過程中出現(xiàn)一個問題既然是用戶自己配置的數(shù)據(jù)源,就無法避免輸入錯誤,連接失敗等情況,關(guān)于這個問題怎么處理呢,今天小編通過本文給大家詳細說明下,感興趣的朋友一起看看吧

Druid動態(tài)數(shù)據(jù)源配置 主要是繼承AbstractRoutingDataSource再通過AOP來實現(xiàn)動態(tài)數(shù)據(jù)源切換.

下面給大家介紹Druid動態(tài)配置數(shù)據(jù)源重復(fù)刷錯誤日志問題,具體內(nèi)容如下所示:

問題描述

功能需求
使用druid數(shù)據(jù)庫連接池實現(xiàn) 動態(tài)的配置數(shù)據(jù)源功能:IP、端口、用戶名、密碼都是用戶頁面手動輸入,可以測試連接,保存數(shù)據(jù)源。

問題說明:
既然是用戶自己配置的數(shù)據(jù)源,就無法避免輸入錯誤,連接失敗等情況。

預(yù)期情況:用戶輸入的配置錯誤,測試連接時,會返回連接失敗的信息。

實際情況:數(shù)據(jù)源測試連接,連接失敗后:

后臺一直打印錯誤信息,一直自動重連

方法被阻塞無返回信息,導(dǎo)致前端頁面一直處于等待狀態(tài)

錯誤信息】:

com.alibaba.druid.pool.DruidDataSource-create connection SQLException, url:xxx, errorCode 0, state 08S01
The last packet sent successfully to the server was 0 milliseconds ago.
The driver has not received any packets from the server.

原始代碼】:

public static void getDataSource(DataConfig dataConfig) throws Exception{
	try {
		Properties properties = new Properties();
		properties.setProperty("driverClassName",dataConfig.getDriverClassName());
		properties.setProperty("url",dataConfig.getUrl());
		properties.setProperty("username",dataConfig.getUserName());
		properties.setProperty("password",dataConfig.getPassWord());
		DataSource ds = DruidDataSourceFactory.createDataSource(properties);
	} catch (Exception e) {
		e.printStackTrace();
	}
}

解決辦法

參數(shù)說明】

參數(shù) 解釋
connectionErrorRetryAttempts 連接出錯后再嘗試連接次數(shù)
breakAfterAcquireFailure 數(shù)據(jù)庫服務(wù)宕機自動重連機制
maxWait 超時等待時間
修改后的代碼】

public static void getDataSource(DataConfig dataConfig) throws Exception{
	try {
		Properties properties = new Properties();
		properties.setProperty("driverClassName",dataConfig.getDriverClassName());
		properties.setProperty("url",dataConfig.getUrl());
		properties.setProperty("username",dataConfig.getUserName());
		properties.setProperty("password",dataConfig.getPassWord());
		properties.setProperty("maxWait","500");//如果失敗,當前的請求可以返回
		DruidDataSource druidDataSource = (DruidDataSource)DruidDataSourceFactory.createDataSource(properties);
		druidDataSource.setConnectionErrorRetryAttempts(0);// 失敗后重連的次數(shù)
		druidDataSource.setBreakAfterAcquireFailure(true);//請求失敗之后中斷
		DataSource ds = druidDataSource;//如果有需要使用javax.sql.DataSource的話
	} catch (Exception e) {
		e.printStackTrace();
	}
}

踩坑總結(jié)

不要在properties中配置connectionErrorRetryAttempts和breakAfterAcquireFailure,沒有效果

1111111

連接失敗的具體錯誤信息,catch不到,源碼中已經(jīng)catch了異常信息,做了相關(guān)處理

2222222

到此這篇關(guān)于解決Druid動態(tài)數(shù)據(jù)源配置重復(fù)刷錯誤日志的問題的文章就介紹到這了,更多相關(guān)Druid動態(tài)數(shù)據(jù)源配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring Security 實現(xiàn)用戶名密碼登錄流程源碼詳解

    Spring Security 實現(xiàn)用戶名密碼登錄流程源碼詳解

    在服務(wù)端的安全管理使用了Spring Security,用戶登錄成功之后,Spring Security幫你把用戶信息保存在Session里,但是具體保存在哪里,要是不深究你可能就不知道,今天小編就帶大家具體了解一下Spring Security實現(xiàn)用戶名密碼登錄的流程
    2021-11-11
  • Java讀取resources目錄下文件路徑的九種代碼示例教程

    Java讀取resources目錄下文件路徑的九種代碼示例教程

    在Java開發(fā)中經(jīng)常需要讀取項目中resources目錄下的文件或獲取資源路徑,這篇文章主要給大家介紹了關(guān)于Java讀取resources目錄下文件路徑的九種代碼示例教程,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-07-07
  • SpringMVC文件上傳中要解決的問題大匯總

    SpringMVC文件上傳中要解決的問題大匯總

    這篇文章主要介紹了SpringMVC文件上傳中要解決的問題,主要有中文文件名編碼問題,文件位置存儲問題以及文件名沖突問題等等,本文結(jié)合實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2023-01-01
  • Java多線程環(huán)境下SimpleDateFormat類安全轉(zhuǎn)換

    Java多線程環(huán)境下SimpleDateFormat類安全轉(zhuǎn)換

    這篇文章主要介紹了Java多線程環(huán)境下SimpleDateFormat類安全轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • Java多線程下解決資源競爭的7種方法詳解

    Java多線程下解決資源競爭的7種方法詳解

    這篇文章主要介紹了Java多線程下解決資源競爭的7種方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • 使用javax.sound實現(xiàn)簡單音頻播放

    使用javax.sound實現(xiàn)簡單音頻播放

    這篇文章主要為大家詳細介紹了使用javax.sound實現(xiàn)簡單音頻播放,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • java如何拷貝復(fù)制對象和集合問題

    java如何拷貝復(fù)制對象和集合問題

    這篇文章主要介紹了java如何拷貝復(fù)制對象和集合問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Java?easyexcel使用教程之導(dǎo)出篇

    Java?easyexcel使用教程之導(dǎo)出篇

    EasyExcel是阿里巴巴開源的一個excel處理框架,以使用簡單,節(jié)省內(nèi)存著稱,下面這篇文章主要給大家介紹了關(guān)于Java?easyexcel使用教程之導(dǎo)出篇的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-06-06
  • 淺析Spring和MyBatis整合及逆向工程

    淺析Spring和MyBatis整合及逆向工程

    這篇文章主要介紹了Spring和MyBatis整合及逆向工程的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • Java之Spring簡單的讀取和存儲對象

    Java之Spring簡單的讀取和存儲對象

    這篇文章主要介紹了Spring的讀取和存儲對象,獲取 bean 對象也叫做對象裝配,是把對象取出來放到某個類中,有時候也叫對象注?,想進一步了解的同學(xué)可以參考本文
    2023-04-04

最新評論

连江县| 都兰县| 贵南县| 肃南| 宜兴市| 武城县| 孝义市| 富民县| 江源县| 西平县| 镇江市| 稻城县| 伊川县| 凤阳县| 宜章县| 通渭县| 开封县| 江北区| 高唐县| 宁晋县| 台湾省| 防城港市| 绵阳市| 宜川县| 松原市| 丰都县| 舞钢市| 全州县| 榆林市| 南城县| 阿拉善左旗| 古田县| 大田县| 双江| 西华县| 太保市| 奉化市| 新河县| 安多县| 二连浩特市| 安阳县|