精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

群里說過幾百遍的長事務死鎖問題還是被人遇到了~別再這樣做了!

數據庫 其他數據庫
近期測試中,發現幾年前開發的業務流程申請模塊在頻繁操作時會出現異常提示,導致審批流程失敗。最初以為是代碼邏輯不周或異常處理不足等常見錯誤,但通過日志排查后發現,問題源自數據庫的死鎖。

問題背景

近期測試中,發現幾年前開發的業務流程申請模塊在頻繁操作時會出現異常提示,導致審批流程失敗。最初以為是代碼邏輯不周或異常處理不足等常見錯誤,但通過日志排查后發現,問題源自數據庫的死鎖。以下是日志信息:

SQL: UPDATE record_process_audit_apply_main_data  SET update_account=?, update_name=?, update_time=?,  task_node=?,apply_time=?      WHERE (task_id = ?)
### Cause: com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Deadlock found when trying to get lock; try restarting transaction
; Deadlock found when trying to get lock; try restarting transaction; nested exception is com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Deadlock found when trying to get lock; try restarting transaction
 at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:271)
 at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)
 at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:91)
 at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:441)
 at com.sun.proxy.$Proxy174.update(Unknown Source)
 at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:288)
 at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:64)
 at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)
 at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)
 at com.sun.proxy.$Proxy603.update(Unknown Source)
 at sun.reflect.GeneratedMethodAccessor723.invoke(Unknown Source)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:498)
 at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:198)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
 at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:137)
 at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
 at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215)
 at com.sun.proxy.$Proxy604.update(Unknown Source)
 at com.ifly.pdm.impl.recordaudittask.RecordProcessAuditTaskServiceImpl.handleCreateAuditTableData(RecordProcessAuditTaskServiceImpl.java:186)

根據日志可以清晰的看到一個事務在獲取鎖時發生了死鎖。

分析 MySQL 錯誤日志

進一步分析 MySQL 錯誤日志,發現以下死鎖情況:

圖片圖片

事務一:

  • 事務 ID: 6536211
  • 狀態: 活躍 10 秒,正在獲取行鎖
  • 操作: 更新 record_process_audit_apply_main_data 表
  • 等待的鎖: 等待主鍵索引上的記錄鎖
  • sql: UPDATE record_process_audit_apply_main_data SET update_account='dxwang', update_name='汪冬雪', update_time='2024-11-15 15:17:34.216', task_node='16' WHERE (task_id = '1857321847525548034')

事務二:

  • 事務 ID: 6536206
  • 狀態: 活躍 5 秒,正在開始索引讀取
  • 持有的鎖: 表 pdm.record_process_audit_apply_main_data 的主鍵索引上的記錄鎖。
  • 等待的鎖: 正在等待在表 pdm.record_process_audit_apply_main_data 的主鍵索引上的記錄鎖
  • sql: UPDATE record_process_audit_apply_main_data SET update_account='dywang3', update_name='王冬艷', update_time='2024-11-15 15:17:38.009', task_node='15', apply_time='2024-11-15 15:17:33.085' WHERE (task_id = '1857322026072875010')

MySQL 最終決定回滾事務 2(事務 ID: 6536206)以解決死鎖問題。

死鎖原因

死鎖發生的原因在于:

  • 事務 1 和事務 2 都在嘗試更新 record_process_audit_apply_main_data 表中的記錄。
  • 事務 1 正在等待事務 2 持有的鎖,事務 2 也在等待事務 1 持有的鎖,導致了死鎖。

定位代碼

通過進一步分析代碼,發現以下關鍵方法:submitApplication。該方法及其調用的其他方法都在同一個事務中執行,可能導致事務時間過長,增加了鎖競爭和死鎖的風險。核心代碼如下所示:

圖片圖片

圖片圖片

圖片圖片

圖片圖片

優化思路:

  • 拆分事務:將大事務拆分成多個小事務,每個事務只處理一部分邏輯。確保每個事務盡可能短,減少鎖持有時間。
  • 異步處理:使用異步任務處理耗時操作,如調用第三方接口。使用消息隊列將部分操作異步化。
  • 優化數據庫操作:確保所有涉及的表都有適當的索引,減少查詢和更新的時間。使用批量操作,減少與數據庫的交互次數。
  • 事務隔離級別:根據業務需求選擇合適的事務隔離級別,減少鎖的競爭。
  • 日志記錄:記錄事務的開始和結束時間,以及關鍵操作的執行情況,便于問題排查。

優化后的偽代碼:

@Transactional
public void submitApplication(Application application) {
    // 拆分事務,確保每個事務盡量短
    try {
        processApplicationDetails(application); // 處理申請細節
        updateTaskStatus(application); // 更新任務狀態
        notifyUser(application); // 通知用戶
    } catch (Exception e) {
        log.error("Error in submitApplication", e);
        throw new RuntimeException("Application submission failed");
    }
}

// 異步處理耗時任務
@Async
public void notifyUser(Application application) {
    // 異步通知用戶
    notificationService.sendNotification(application.getUserId(), "Your application is processed.");
}

責任編輯:武曉燕 來源: JAVA日知錄
相關推薦

2011-11-01 09:31:16

寫代碼程序需要進化

2023-10-05 18:49:12

.Net?Newtonsof源碼

2024-01-10 09:44:11

MySQL死鎖

2021-10-26 08:22:38

消息堆積擴容RocketMQ

2019-02-13 08:58:11

程序員加薪開發

2020-12-17 10:23:41

死鎖LinuxLockdep

2025-05-30 03:15:00

2015-07-30 09:48:38

自學編程3遍讀書法

2017-01-15 10:20:57

交通網絡

2013-07-26 09:16:13

SwiftOpenStackSwiftStack

2022-08-10 19:28:40

Hadoop數據庫

2019-04-11 14:51:12

數據

2022-05-24 16:09:38

前端腳本

2021-10-29 07:49:22

Spring事務管理

2011-06-24 15:07:16

百度快照蜘蛛

2014-07-14 11:47:03

火狐瀏覽器

2024-04-30 08:22:51

Figma圖形編輯變換矩陣

2020-04-24 20:05:16

VueAxios前端

2021-03-22 16:10:10

手機內存技術

2024-02-06 09:30:25

Figma矩形矩形物理屬性
點贊
收藏

51CTO技術棧公眾號

久久青草国产手机看片福利盒子| 一区二区三区四区五区在线 | 久无码久无码av无码| 精品人妻一区二区三区蜜桃| 国产欧美一区二区三区国产幕精品| 亚洲天堂av女优| 交换做爰国语对白| 韩国美女久久| 亚洲毛片av在线| 欧美精品久久| 国产高清免费观看| 久久精品人人| 欧美激情亚洲一区| 美女av免费看| 精品国产导航| 欧美一区二区视频在线观看| 777米奇影视第四色| wwwav在线| 久久久久国产精品免费免费搜索| 亚洲自拍小视频免费观看| 日本免费在线观看视频| 欧美天天视频| 久久精品视频va| 偷拍女澡堂一区二区三区| 亚洲男男av| 在线一区二区视频| 国产黄色一级网站| 污污网站在线看| 亚洲欧美偷拍三级| 亚洲高清123| 毛片在线播放网址| 99久久久久免费精品国产| 成人网在线视频| 涩涩视频在线观看| 噜噜噜91成人网| 91高清免费视频| 国产午夜精品一区二区理论影院| 国产精品精品国产一区二区| 一本一本久久a久久精品牛牛影视| 插我舔内射18免费视频| 国产精品极品国产中出| 日韩三级电影网址| 日韩欧美色视频| 国产一区二区三区黄网站| 欧美日韩大陆一区二区| 激情 小说 亚洲 图片: 伦| 亚洲欧洲高清| 欧美性猛交xxxx偷拍洗澡| 无罩大乳的熟妇正在播放| 97人澡人人添人人爽欧美| 亚洲一区二区精品久久av| 国产乱子伦精品无码专区| 97影院秋霞午夜在线观看| 亚洲天堂久久久久久久| 少妇熟女一区二区| www免费在线观看| 一区二区三区精品| 97视频久久久| 一本大道色婷婷在线| 精品色蜜蜜精品视频在线观看| 高清在线观看免费| 原纱央莉成人av片| 在线影视一区二区三区| xx欧美撒尿嘘撒尿xx| 一区二区三区| 欧美成人福利视频| 噜噜噜在线视频| 尤物tv在线精品| 中文字幕欧美日韩在线| 麻豆精品国产免费| 欧美视频日韩| 4k岛国日韩精品**专区| 欧美一级做a爰片免费视频| 乱一区二区av| 成人h视频在线观看| 日韩av资源站| 国产精品电影院| 日本精品久久久久久久久久| 九色porny丨国产首页在线| 日本韩国欧美一区| 久久精品亚洲天堂| 黄色免费大全亚洲| 伊人久久五月天| 日韩激情综合网| 亚洲人成久久| 国产日韩中文在线| 韩国中文字幕hd久久精品| 91免费精品国自产拍在线不卡| 亚洲高清乱码| www.综合| 欧美美女视频在线观看| 91超薄肉色丝袜交足高跟凉鞋| 最新亚洲精品| 久久久国产精品免费| 日本视频免费在线| 久久精品噜噜噜成人av农村| 国产伦精品一区二区三区高清| 国产美女性感在线观看懂色av | 亚洲精品国产福利| 一级片黄色录像| 黄色欧美日韩| 国产精品免费福利| 人妻偷人精品一区二区三区| 国产精品三级电影| www.99热这里只有精品| 四虎精品永久免费| 亚洲欧美国产精品久久久久久久 | 国产亚洲精品熟女国产成人| 欧美在线三级| 国产精品视频地址| 亚洲欧美自偷自拍| 亚洲精品日产精品乱码不卡| www.日日操| 精品福利一区| 欧美另类99xxxxx| 岳乳丰满一区二区三区| 91亚洲国产成人精品一区二区三| 欧美美女黄色网| 99久久综合国产精品二区| 亚洲激情 国产| 国产大片免费看| 蜜臀a∨国产成人精品| 久久久久久久久久久久久9999| av片在线观看永久免费| 欧美三级电影在线观看| 永久免费看mv网站入口78| 亚洲精品美女| 99高清视频有精品视频| 国产在线高潮| 欧美二区乱c少妇| 色欲狠狠躁天天躁无码中文字幕| 免费久久99精品国产自在现线| 粉嫩精品一区二区三区在线观看| 久久久久久国产精品免费无遮挡| 欧美丝袜丝交足nylons图片| 我和岳m愉情xxxⅹ视频| 中文亚洲免费| 国产偷久久久精品专区| 精灵使的剑舞无删减版在线观看| 91精品在线一区二区| 免费看一级黄色| 六月丁香婷婷色狠狠久久| 日韩av在线电影观看| 欧美二三四区| 亚洲亚裔videos黑人hd| 午夜精品久久久久久久蜜桃| 久久久久99精品一区| 精品人妻少妇一区二区| 给我免费播放日韩视频| 国模精品视频一区二区三区| 丰满熟妇乱又伦| 亚洲成人综合在线| 亚洲国产精品无码久久久久高潮| 亚洲大片在线| 精品久久一区二区三区蜜桃| 水蜜桃在线视频| 亚洲另类xxxx| 最近中文字幕在线视频| 日韩美女精品在线| 精品国产免费久久久久久婷婷| 红桃视频欧美| 美媛馆国产精品一区二区| 亚洲欧洲高清| 在线看欧美日韩| 国产精品嫩草影院桃色| 亚洲午夜成aⅴ人片| 国产毛片毛片毛片毛片毛片毛片| 久久激情一区| 亚洲精品一区二区三区蜜桃久| 3d动漫一区二区三区在线观看| 久久av.com| 无码国精品一区二区免费蜜桃| 欧美视频免费在线| 日本污视频网站| 国产裸体歌舞团一区二区| 成人黄色大片网站| 国产成人一区二区三区影院| 成人a级免费视频| gratisvideos另类灌满| 亚洲精品中文字幕av| 伊人网免费视频| 一区二区三区不卡视频 | 亚洲综合福利| 国产自摸综合网| 成人性生交大片免费看网站 | 久久久综合香蕉尹人综合网| 91成人在线| 美日韩精品免费视频| 四虎在线视频免费观看| 欧美色涩在线第一页| 免费在线观看亚洲| 中日韩av电影| 青青草视频播放| 久草这里只有精品视频| 久久亚洲中文字幕无码| 91亚洲人成网污www| 九九九热999| www.久久爱.com| 国产成人久久久| 国精一区二区三区| 少妇av一区二区三区| 免费观看黄一级视频| 欧美老肥妇做.爰bbww| 国产微拍精品一区| 亚洲精品国产高清久久伦理二区| 99久久久无码国产精品衣服| 丁香六月综合激情| 天天色天天综合网| 老牛国产精品一区的观看方式| 男人草女人视频| 久久婷婷蜜乳一本欲蜜臀| 九九九久久久| 盗摄牛牛av影视一区二区| 国产一区香蕉久久| 久久野战av| 97在线视频观看| 欧美性video| 久久精品99久久久香蕉| 黄色软件在线观看| 日韩精品中文在线观看| 亚洲精品综合网| 欧美一区二区三区白人| 在线视频 中文字幕| 欧美色播在线播放| 在线观看 中文字幕| 一级做a爱片久久| 黄色a级片在线观看| 国产精品第四页| 国产欧美小视频| 欧美国产激情二区三区| 久久久久亚洲av无码专区桃色| www.久久精品| 色综合久久五月| 不卡视频一二三四| 亚洲av成人精品一区二区三区| 国产乱对白刺激视频不卡| 亚洲久久中文字幕| 麻豆一区二区99久久久久| 国产视频一区二区三区在线播放 | 色在线免费视频| 亚洲激情小视频| 天堂在线视频观看| 日韩av网址在线| 天堂91在线| 亚洲剧情一区二区| 免费福利在线观看| 中文字幕亚洲一区| 日本中文字幕电影在线免费观看 | 麻豆免费精品视频| 在线观看免费不卡av| 久久精品国产网站| 一级片黄色免费| 国产成人欧美日韩在线电影| 性xxxxxxxxx| 99re热视频这里只精品| 国产精品高清无码在线观看| 国产欧美一区二区精品性| 国产不卡在线观看视频| 亚洲同性gay激情无套| 美女福利视频在线观看| 亚洲成在人线在线播放| 国产免费av一区| 欧美午夜精品久久久| 国产一区二区三区成人| 欧美一级日韩一级| 色wwwwww| 国产亚洲精品久久久久久| 日本最新在线视频| 欧美激情视频给我| 三上悠亚亚洲一区| 91香蕉亚洲精品| 草莓视频一区二区三区| 欧美lavv| 一区二区三区国产精华| 水蜜桃色314在线观看| 日韩av中文字幕一区二区| 五月天婷婷影视| 99re成人精品视频| 天天色天天综合| 亚洲成a人片在线不卡一二三区| 亚洲欧美偷拍视频| 日韩一区二区在线播放| 日本大片在线观看| 久久人人爽人人爽人人片亚洲 | 国产精品久久久久91| 4438五月综合| 欧美不卡三区| 你懂的国产精品永久在线| 黄色片视频在线免费观看| 韩国一区二区在线观看| 性欧美丰满熟妇xxxx性久久久| 国产精品国产自产拍在线| 欧美亚洲天堂网| 欧美日韩国产中文| 日韩国产福利| 欧美高清一级大片| 69堂精品视频在线播放| 国产乱码精品一区二区三区日韩精品 | 国产精品白丝喷水在线观看| 婷婷综合另类小说色区| 91久久国语露脸精品国产高跟| 亚洲第一精品夜夜躁人人爽| 日韩在线资源| 国产精品igao视频| 极品一区美女高清| 看全色黄大色大片| 日韩vs国产vs欧美| 国产精品jizz| 亚洲超碰97人人做人人爱| 亚洲天堂网视频| 亚洲欧洲高清在线| heyzo中文字幕在线| 91沈先生作品| 久久在线视频| 人人爽人人av| 91麻豆产精品久久久久久 | lutube成人福利在线观看| 97久久久久久| 国产精品jk白丝蜜臀av小说| 日韩视频在线观看视频| 美女在线观看视频一区二区| 91成人在线免费视频| 欧美日韩午夜激情| 日本免费不卡视频| 久久久久久国产免费| 久久国产精品免费一区二区三区| 亚洲成色www久久网站| 日韩精彩视频在线观看| 搡老熟女老女人一区二区| 亚洲成人一区二区| www.av在线.com| 久久99久久亚洲国产| 久久9999免费视频| 中文字幕一区二区三区有限公司| 男男成人高潮片免费网站| 亚洲а∨天堂久久精品2021| 91国在线观看| 岛国在线视频| 国产日韩在线免费| 亚洲人metart人体| 久久精品一二三四| 亚洲一区在线播放| 欧美自拍偷拍第一页| 国内精久久久久久久久久人| 国产厕拍一区| 日日碰狠狠添天天爽超碰97| 91免费观看在线| 国产99免费视频| 日韩在线资源网| 999久久久国产999久久久| 久久av喷吹av高潮av| 国产成人超碰人人澡人人澡| 18精品爽视频在线观看| 亚洲国产精品久久久久秋霞蜜臀| 涩涩av在线| 日韩欧美精品一区二区三区经典| 男男成人高潮片免费网站| www色aa色aawww| 欧美不卡在线视频| а√在线中文在线新版| 免费成人深夜夜行视频| 免费成人在线观看| 日本一级二级视频| 日韩av中文字幕在线播放| 亚洲日本网址| 中文字幕乱码免费| 99riav久久精品riav| 精品乱码一区内射人妻无码| 久久天堂av综合合色| 老司机精品在线| 亚洲黄色av网址| 夜夜嗨av一区二区三区网页| 神马久久精品| 91精品在线观| 国产一区91| 强制高潮抽搐sm调教高h| 精品99一区二区三区| 国产成人精品亚洲日本在线观看| 无码人妻aⅴ一区二区三区日本| zzijzzij亚洲日本少妇熟睡| 综合久久中文字幕| 欧美激情久久久| 精品视频99| www.com日本| 欧美三级蜜桃2在线观看| 丁香花在线电影| 一本久久a久久精品vr综合| 成人午夜又粗又硬又大| 国产精品无码一区| 97热精品视频官网| 91精品国产乱码久久久久久| 鲁大师私人影院在线观看| 91.成人天堂一区| 在线观看涩涩| 国产成人生活片| 日本一区二区高清| 色哟哟国产精品色哟哟| 亚洲www在线| 视频一区二区三区入口| 久久精品视频9|