成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

DB2 for z/OS Web 應用程序死鎖分析

瀏覽:3日期:2023-11-11 10:08:06
本文闡述了開發人員和測試人員如何確定 DB2 for z/OS 環境下復雜 Web 應用程序中的死鎖原因。簡介在任何數據庫環境中,死鎖檢測對于應用程序并發性都是很重要的。就像其他應用程序一樣,在復雜 Web 環境中也需要能夠確定任何死鎖的起因。本文解釋了如何配置 DB2 for os/390 的死鎖跟蹤設置,以啟用死鎖分析。先闡述了如何指定相關的 DB2 for z/OS 跟蹤以獲取足夠信息,然后說明如何分析這些跟蹤報告,并指出引起 DB2 for z/OS 環境中運行的復雜 Web 應用程序出現死鎖的不良 SQL 語句。本文假定讀者熟悉基本的 z/OS 操作。使用 DB2 Performance Monitor 來配置跟蹤Locking 跟蹤若要啟用 Locking 跟蹤,首先打開 IBM DB2 Performance Monitor 應用程序。然后執行下面步驟:配置 Collect Task A 以收集死鎖跟蹤。設置 Trigger by 4=Immediate Start 以立即激活任務。選擇 Locking, Data Type, IFICD, Requesting Location, Plan name and Authid,然后按 Enter。圖 1. 配置 Collect Task ADB2 for z/OS Web 應用程序死鎖分析選擇數據類型 Lockout,然后按 Enter。在 IFCID Selection 面板中,選擇下面的 IFICD,然后按 Enter。105DBID/OBID for database and tablespace translation 107Data set open/close information172Deadlock在 Trace Qualification 面板中,填入 DB 用戶名(在本例中為 TUSER03)和 DB 模式(在本例中為 TGUSER03),然后按 Enter。圖 2. Trace qualification 面板在 Trigger Immediately 面板中,填入 DB2 跟蹤數據的輸出數據集(例如,TGUSER03.DB2PM.TRACE01)。設置 Disposition 為 Overwrite。注重:可以使用其他方法來配置 DB2 跟蹤停止觸發器(例如,經過一段時間后)。圖 3. Trigger immediately 面板按 Enter,完成 Locking 跟蹤配置。假如 Web 應用程序運行期間有死鎖,則激活 Collect Task A 來收集死鎖信息。SQL Activity 跟蹤按照下面步驟來配置 SQL Activity 跟蹤:配置 Collect Task B 以收集 SQL Activity 跟蹤。設置 Trigger by 4=Immediate Start 來立即激活任務。選擇 SQL Activity, Data Type, IFCID, Requesting Location, Plan name and Authid,然后按 Enter。選擇全部收集數據類型,然后按 Enter。在 IFCID Selection 面板中,選擇下面的 IFCID,然后按 Enter:16Start of the first insert20Lock summary 53Describe, SQL commit/rollback or error before SQL analyzed58End of SQL statement execution59Start of FETCH 60start of SELECT61Start of INSERT, UPDATE or DELETE63SQL statement to be parsed 64start of PREPARE65start of OPEN CURSOR for static or dynamic SQL 66Start of CLOSE CURSOR for static or dynamic SQL 68Start of ROLLBACK69End of ROLLBACK 70Start of COMMIT phase 2 71End of COMMIT phase 288start of synchronous request (commit phase 1)89End of synchronous request (commit phase 1) 105DBID/OBID for database and tablespace translation在 Trace Qualification 面板中,填入 DB 用戶名(例如,TUSER03)和 DB 模式(例如,TGUSER03),然后按 Enter。在 Trigger Immediately 面板中,填入 DB2 跟蹤數據的輸出數據集(例如,TGUSER03.DB2PM.TRACE02)。設置 Disposition 為 Overwrite。注重:可以使用其他方法來配置 DB2 跟蹤停止觸發器(例如,經過一段時間后)。按 Enter 完成 SQL Activity 配置。在 Web 應用程序運行期間,激活 Collect Task B 來收集 SQL 語句。分析跟蹤報告以確定不良 SQL 語句Web 應用程序中 DB2 鎖的原理通常 Web 應用程序有頁鎖和行鎖。根據創建數據庫所使用的數據定義語言 (DDL) 模式文件,可以確定正在使用的鎖類型。行鎖有三種模式:S(Share)、U(Update) 和 X(Exclusive)。要盡量避免的鎖影響是掛起、超時和死鎖。當兩個或兩個以上應用程序進程均持有對資源(該資源是其他進程所需,且沒有該資源時進程無法繼續進行)的鎖時,會發生死鎖。下面是關于發生死鎖情況的具體解釋:JobOne 和 JobTwo 是兩個事務。JobOne 訪問表 M,并持有頁 B 的 X (exclusive) 鎖,包含記錄 000300。JobTwo 訪問表 N,并持有頁 A 的 X (exclusive) 鎖,包含記錄 000010。JobOne 請求表 N 頁 A 的鎖,同時仍持有表 M 頁 B 的鎖。因為 JobTwo 持有頁 A 的 X 鎖,所以作業被掛起。JobTwo 請求表 M 頁 B 的鎖,同時仍持有表 N 頁 A 的鎖。因為 JobOne 持有頁 B 的 X 鎖,所以作業被掛起。這種情況就是死鎖。為了改善應用程序的并發性,您需要找到引起死鎖的 SQL 語句。然后,優化 SQL 語句以消除死鎖。根據死鎖報告來分析鎖信息作為例子,我們假定當多個顧客同時登錄并注冊一個商店時發生死鎖。您已經得到死鎖跟蹤報告和 SQL 語句報告。首先,您應檢查死鎖跟蹤報告(在本文中為 TGUSER03.DB2PM.LOCKS)。下面是跟蹤報告中一些要害參數的說明,有助于理解該進程:圖 4. 跟蹤參數分析一下表 USERS(圖 5 和圖 6)上的第一個死鎖。在圖 5 中,可以看到死鎖涉及到兩個資源。分別是 row X'2B'、page X'00004E'、page USERS、DB SW03DB1 和 row X'2B'、page X'00004C'、table USERS、DB SW03DB1。WAITERS =2 表明死鎖中有兩個等待者(0CC544053119 和 0E26A4053107)。死鎖發生在 12/05/05 06:30:09.40。從圖 6 可以看到資源持有者和等待者與圖 5 中的相反。等待者(實際上是圖 5 中的持有者)正在請求持有者(實際上是圖 5 中的等待者)所持有的資源。按照死鎖的定義,在這種情況下會發生死鎖?,F在,利用圖 5 和圖 6 來總結一下鎖關系。從圖 5 中可以看到 LUW 0CC544053119 所持有的鎖是 row X'2B'、page X'00004E'、table USERS、DB SW03DB1 上的行鎖,且保持在 X 狀態。等待者 LUW 實例 0E26A4053107 正在請求同一個資源上的 S 鎖模式。而在圖 6 中,LUW 0E26A4053107 所持有的鎖是 row X'2B'、page X'00004C'、table USERS、DB SW03DB1 上的行鎖,且保持在 X 狀態。等待者 LUW 實例 0CC544053119 正在請求同一個資源上的 S 鎖模式。因此發生死鎖。最后,請注重圖 5 中的 BLOCKER is HOLDER --*VICTIM*,該線程 ("victim") 的作用是回滾以進行其他線程。圖 5. Locking 跟蹤 —— 死鎖報告圖 6. Locking 跟蹤 —— 死鎖報告表 1 總結死鎖分析:表 1. 死鎖分析LUW 實例持有的資源(X 鎖)請求的資源(S 鎖)死鎖時間表0CC544053119SW03DB1.USERS.X'00004E'.X'2B'SW03DB1.USERS.X'00004C'.X'2B'06:30:09.410449910E26A4053107SW03DB1.USERS.X'00004C'.X'2B'SW03DB1.USERS.X'00004E'.X'2B'06:30:09.41044991根據 SQL 活動報告來分析 SQL 信息打印 SQL ACTIVITY 跟蹤(在本文中為 TGUSER03.DB2PM.SQL),使用死鎖所涉及的 LUW INSTANCE 數量(0CC544053119 和 0E26A4053107)進行過濾??梢园l現最后一次 commit 操作應正好在死鎖出現 (06:30:09.41044991) 前完成。接下來,搜索僅在完成最后一次 commit 操作后執行的 SQL 語句。COMMIT processing in SQL ACTIVITY trace for INSTANCE 0CC544053119COMMIT RECEIVED 06:28:50.72COMMIT RECEIVED 06:28:50.85COMMIT RECEIVED 06:28:50.97COMMIT RECEIVED 06:28:51.04the latest commit before the deadlock occurred.COMMIT RECEIVED 06:30:09.61COMMIT RECEIVED 06:30:09.64COMMIT RECEIVED 06:30:09.73COMMIT RECEIVED 06:30:09.77COMMIT RECEIVED 06:30:09.80因此,應該研究那些訪問過 SW03DB1.USERS 且在 06:28:51.04 到 06:30:09.41044991 之間執行的 SQL 語句。如圖 7 所示。圖 7. SQL 報告根據鎖狀態 X 和 S,對于資源 SW03DB1.USERS,在 SELECT 語句之前應是 INSERT 語句。按照同樣的方法,對于 INSTANCE 0E26A4053107,可以找到在出現死鎖前進行最后一次 commit 的時間.COMMIT processing in SQL ACTIVITY trace for INSTANCE 0E26A4053107COMMIT RECEIVED 06:28:50.65the latest commit before the deadlock occurred.COMMIT RECEIVED 06:30:49.67然后,研究那些訪問過 SW03DB1.USERS 且在 06:28:50.65 到 06:30:09.41044991 之間執行的 SQL 語句。如圖 8 所示。圖 8. SQL 報告從圖 5 和圖 6 中可以看到兩個實例 0CC544053119 和 0E26A4053107 正嘗試提交 INSTER INTO USERS 和 SELECT FROM USERS SQL 語句。由于 INSERT 和 SELECT 語句之間沒有 COMMIT,死鎖可能是由表掃描引起的。因此運行并發線程時,出現了死鎖。結束語本文闡述了如何使用 DB2 Performance Monitor 工具來收集死鎖和 SQL Activity 跟蹤。另外,給出了一個例子,演示如何通過分析跟蹤找到一個死鎖情況所涉及的 SQL 語句。使用該方法,開發人員和測試人員都可以發現不良 SQL 語句,并完成并發性能問題解決方案的第一步。
標簽: DB2 數據庫
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
国产专区一区| 国产成人a级片| 国产一区二区精品在线观看| 美女视频一区免费观看| 亚洲精品视频自拍| 欧美视频成人| 国产精品污www在线观看| 色综合视频在线观看| 69久久99精品久久久久婷婷 | 欧美在线999| 日韩av午夜在线观看| 久久精品国产清高在天天线| 亚洲成av人片www| 性伦欧美刺激片在线观看| 亚洲一区二区综合| 美女被久久久| 丝袜亚洲精品中文字幕一区| 老司机精品视频网站| 全国精品久久少妇| 欧美性色黄大片手机版| 久久机这里只有精品| 欧美日韩中文国产| 国产精品资源在线看| 91精品在线免费观看| 粉嫩av一区二区三区| 精品99999| 欧美精品一区三区在线观看| 中文字幕国产一区| 精品91视频| 一区二区三区在线观看欧美| 亚洲一区二区三区免费在线观看 | 一本大道久久a久久精品综合| 亚洲成人自拍网| 一本到不卡免费一区二区| 免费观看一级特黄欧美大片| 欧美日韩亚洲高清一区二区| 国产成人精品亚洲午夜麻豆| 亚洲精品在线电影| 国产精品v欧美精品∨日韩| 中文字幕视频一区| 国产一区二区高清不卡| 日韩国产精品大片| 欧美一区二区三区影视| 欧美1级日本1级| 亚洲免费成人av| 色婷婷精品大视频在线蜜桃视频| 激情五月播播久久久精品| 欧美一区二区三区在线| 欧美sm重口味系列视频在线观看| 亚洲欧洲日产国产综合网| 亚洲欧美日韩视频二区| 精品伊人久久久久7777人| 欧美va亚洲va香蕉在线| 黄色国产精品一区二区三区| 午夜精品久久久久久久久久久 | 免费成人av在线播放| 日韩一级黄色大片| 欧美精品激情| 亚洲成人精品影院| 欧美挠脚心视频网站| 97精品国产露脸对白| 亚洲欧美激情小说另类| 一本大道久久a久久精二百| 国产 日韩 欧美大片| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 免费亚洲婷婷| 国产夫妻精品视频| 最新欧美精品一区二区三区| 在线一区二区观看| 99re热这里只有精品免费视频| 亚洲欧美电影一区二区| 欧美日韩色一区| 好吊日精品视频| 日本在线不卡视频| 日韩三区在线观看| 亚洲久色影视| 韩日欧美一区二区三区| 亚洲国产岛国毛片在线| 91福利精品视频| 欧美激情第二页| 日产国产欧美视频一区精品| 久久久五月婷婷| 老司机午夜精品视频在线观看| 成人一区二区三区在线观看| 亚洲主播在线观看| 欧美xxxx在线观看| 亚洲资源av| 99久久亚洲一区二区三区青草 | 精品福利一区二区三区免费视频| 99这里有精品| 国产成人福利片| 亚洲愉拍自拍另类高清精品| 欧美一区二区三区思思人| 亚洲欧洲日韩综合二区| 国产精品2024| 亚洲一区在线观看免费观看电影高清| 884aa四虎影成人精品一区| 亚洲精品乱码| 成人午夜免费av| 五月婷婷色综合| 国产欧美日韩视频在线观看| 91高清在线观看| 欧美先锋影音| 韩国三级中文字幕hd久久精品| 亚洲欧美综合色| 日韩欧美亚洲一区二区| 久久午夜视频| 极品日韩久久| 成人h动漫精品一区二区| 午夜不卡在线视频| 国产精品美女视频| 日韩一级二级三级精品视频| 乱码第一页成人| 欧美日韩一区二| 高清不卡一区二区| 日本三级亚洲精品| 亚洲色图色小说| 日韩欧美一区在线观看| 色婷婷久久一区二区三区麻豆| 国内精品久久久久久久果冻传媒| 国产精品99久久久久久似苏梦涵 | 国产不卡视频在线观看| 亚洲高清三级视频| 国产精品免费aⅴ片在线观看| 日韩一区二区三区电影 | 91精品办公室少妇高潮对白| 亚洲成色www久久网站| 国产91精品免费| 久久99久久久久久久久久久| 一区二区三区在线播放| 国产日韩欧美亚洲| 日韩美女一区二区三区四区| 欧美亚洲愉拍一区二区| 亚洲少妇一区| 国产自产在线视频一区| av综合在线播放| 国产一区二区三区四区五区美女| 午夜精品久久久久久久久久 | 制服丝袜日韩国产| 一本到不卡精品视频在线观看 | 亚洲影音一区| 亚洲国产免费看| 国产一区自拍视频| 91麻豆精品秘密| 成人免费视频播放| 国产成人免费视频一区| 激情亚洲综合在线| 麻豆高清免费国产一区| 亚洲午夜一二三区视频| 亚洲少妇中出一区| 国产精品水嫩水嫩| 国产欧美日韩久久| 久久先锋影音av鲁色资源| 日韩美女天天操| 91精品国产一区二区三区 | 欧美一区二区三区系列电影| 欧美日韩国产a| 欧美网站大全在线观看| 在线视频中文字幕一区二区| 久久久久欧美| 色综合久久88色综合天天6| 美脚丝袜一区二区三区在线观看| 91久久黄色| 一本久道久久综合狠狠爱| 亚洲精品一区二区三区av| 影音先锋久久资源网| 韩国av一区| 伊人精品在线| 日韩亚洲国产欧美| 亚洲精品人人| 亚洲少妇在线| 免费亚洲一区| 久久久蜜桃一区二区人| 玖玖在线精品| 在线日韩国产精品| 欧美三级乱人伦电影| 欧美怡红院视频| 欧美日韩免费电影| 欧美疯狂性受xxxxx喷水图片| 欧美丰满嫩嫩电影| 欧美一区二区三区系列电影| 欧美一级淫片007| 精品久久国产97色综合| 久久综合九色欧美综合狠狠| 久久久久久综合| 中文无字幕一区二区三区 | 国产一区三区三区| 丰满亚洲少妇av| www.爱久久.com| 国精品一区二区三区| 激情久久中文字幕| 国产欧美大片| 色婷婷激情久久| 欧美精品少妇一区二区三区| 日韩精品一区二区三区在线观看| 久久精品综合网| 亚洲视频一区在线观看| 亚洲最快最全在线视频| 视频一区二区三区入口| 极品少妇一区二区|