程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> Mysql 呈現毛病使用直接中綴銜接招致數據被鎖(消費毛病)詳解

Mysql 呈現毛病使用直接中綴銜接招致數據被鎖(消費毛病)詳解

編輯:MySQL綜合教程

Mysql 呈現毛病使用直接中綴銜接招致數據被鎖(消費毛病)詳解。本站提示廣大學習愛好者:(Mysql 呈現毛病使用直接中綴銜接招致數據被鎖(消費毛病)詳解)文章只能為提供參考,不一定能成為您想要的結果。以下是Mysql 呈現毛病使用直接中綴銜接招致數據被鎖(消費毛病)詳解正文


使用直接中綴銜接招致數據被鎖(消費毛病)

     這是一個由使用重啟銜接直接而招致數據被鎖的問題。
     零碎大致構造


根本狀況:

整個架構為了一致管理db銜接,共享銜接。 使用經過loadbalance銜接db訪問層。 db訪問層後端代理若干db。 使用到loadbalance以mysql協議通訊。 db訪問層到db以JDBC方式通訊。

毛病: 某些數據庫中的表數據相當長一段時間被鎖,招致使用某些場景失敗。

毛病剖析:使用開啟一個事務的set autocommit=0命令是從app-lb-db訪問層-db,時期假如某個事務還未執行完,而app強行中綴銜接,就會招致app-lb的銜接斷開,而lb並不直接斷開後端的銜接,即lb-db訪問層-db的銜接不會斷,從而招致db不會發作回滾操作。而且此事務對某些記載加了鎖,於是就會發作某些數據被鎖。直到db訪問層檢測出該銜接超越了idle時間才會封閉,並發送回滾命令給db。

處理問題:

① lb在前端銜接封閉時要同時封閉同會話的後端銜接,並且db訪問層要監聽lb的銜接,一旦封閉則要做回滾操作。

②去掉lb,提供客戶端loadbalance,使用一旦封閉銜接db訪問層也要封閉銜接。

 感激閱讀,希望能協助到大家,謝謝大家對本站的支持!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved