日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

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

瀏覽:53日期: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 中的等待者)所持有的資源。按照死鎖的定義,在這種情況下會發生死鎖。現在,利用圖 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)進行過濾。可以發現最后一次 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 數據庫
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩不卡免费高清视频| 亚洲免费黄色| 欧美伊人影院| 日韩不卡在线观看日韩不卡视频 | 欧美自拍一区| 国产精品久久久久久久久免费高清 | 亚洲欧美日韩国产| 日韩在线观看不卡| 99国产精品视频免费观看一公开 | av亚洲免费| 视频精品一区二区| 国产精品xxx| 亚洲成av人片一区二区密柚| 亚洲少妇自拍| 国产美女久久| 97欧美在线视频| 中文精品视频| 国产精品日韩精品在线播放| 久久久久久色 | 欧美日韩精品一区二区三区在线观看| 麻豆国产精品777777在线| 国产一区二区三区探花| 久久久久久美女精品| 最新日韩欧美| 欧美私人啪啪vps| 成人高清一区| 亚洲精品日韩久久| 精品国产乱码久久久久久1区2匹| 偷拍欧美精品| 国产美女亚洲精品7777| 国精品一区二区| 狠狠爱www人成狠狠爱综合网| 亚洲免费毛片| 日韩一区电影| 日韩一区二区三区精品视频第3页| 国产精品99久久精品| 爽好多水快深点欧美视频| 久久精品国产久精国产爱| 狠狠干综合网| 精品国产aⅴ| 视频一区在线视频| 成人国产精品一区二区网站| 亚洲aa在线| 99精品在线免费在线观看| 国产欧美啪啪| 欧美一区=区| 国产三级一区| 欧美日中文字幕| 麻豆国产精品777777在线| 亚洲韩日在线| 久久久久97| 美女黄网久久| 91免费精品| 欧美日韩调教| 中文精品视频| 日韩综合小视频| 99久久99久久精品国产片果冰| 日韩激情一区二区| 精品欧美一区二区三区在线观看| 欧美激情一区| 三级亚洲高清视频| 欧美一级网站| 久久最新视频| 精品1区2区3区4区| 国产不卡一区| 欧美一级网址| 日韩影院精彩在线| 久久久精品五月天| 麻豆成全视频免费观看在线看| 国产日产精品_国产精品毛片| 伊人久久大香伊蕉在人线观看热v| 91精品精品| 91av亚洲| 久久毛片亚洲| 国产精品毛片一区二区在线看| 国产福利亚洲| 最新国产精品视频| 男人天堂欧美日韩| 欧美在线亚洲| 欧美~级网站不卡| 最新中文字幕在线播放| 免费亚洲婷婷| 国产精品激情| 欧美激情一区| 精品72久久久久中文字幕| 69堂免费精品视频在线播放| 日韩黄色av| 中文字幕亚洲精品乱码| 欧美综合二区| 蜜桃视频一区二区三区| 91久久视频| 日韩欧美在线中字| 色老板在线视频一区二区| av资源中文在线天堂| 日韩精品专区| 美女一区网站| 不卡在线一区| 亚洲一级淫片| 日韩区一区二| 国产精品久久国产愉拍| 国产精品白丝久久av网站| 久久三级中文| 国产91在线精品| 成人精品高清在线视频| 日韩三区免费| 久久视频国产| 成人精品天堂一区二区三区| 婷婷综合激情| 免费观看在线综合| 国产欧美亚洲一区| 国产一区二区三区免费在线| 国产精品蜜芽在线观看| 欧美日中文字幕| 欧美日韩视频| 日韩avvvv在线播放| 欧美国产专区| 91精品国产自产在线观看永久∴| av不卡免费看| 国产欧美三级| 丝袜av一区| 国产精品欧美一区二区三区不卡| 国产精品美女久久久| 精品国产欧美| 日韩国产网站| 午夜久久99| 日韩精品视频在线看| 国产日韩欧美一区二区三区| 欧美激情视频一区二区三区免费 | 亚洲最新av| 国产视频网站一区二区三区| 亚洲国产福利| 精品国产一区二区三区噜噜噜| 中文字幕高清在线播放| 欧美天堂视频| 久久一二三区| 国内一区二区三区| 日韩一区二区久久| 色婷婷成人网| 国产成人精选| 亚洲成人精选| 天海翼精品一区二区三区| 综合一区二区三区| 久久伊人国产| 激情综合亚洲| 日韩av字幕| 亚洲成人国产| 国产情侣一区| 激情视频一区二区三区| 国产日韩一区| 精品91久久久久| 国产精品xxx在线观看| 亚洲高清二区| 国产精品v一区二区三区| 亚洲不卡av不卡一区二区| 日韩成人一级| 少妇久久久久| 日韩精品久久理论片| 久久久久久久久丰满| 中文字幕免费一区二区| 日本在线高清| 国产精品亚洲欧美| 五月天久久久| 日韩成人精品一区| 日韩欧美中文在线观看| 欧美高清一区| av最新在线| 欧美久久久网站| 噜噜噜躁狠狠躁狠狠精品视频 | 亚洲成人va| 麻豆精品久久久| 久久亚洲国产精品一区二区| 久久蜜桃精品| 国产一区二区三区不卡视频网站| 亚洲欧美视频| 久久久久久免费视频| 久久不见久久见免费视频7 | 久久免费视频66| 91亚洲无吗| 日韩欧美中文| 精品一区二区男人吃奶 | 日韩精品一区第一页| 国产一区二区中文| 麻豆91小视频| 青草综合视频| 亚洲精品国模| 午夜日韩福利| 桃色一区二区| 在线看片国产福利你懂的| 欧美伊人久久| 日韩精品久久久久久久软件91| 91国语精品自产拍| 精品福利久久久| 国产精品一级在线观看| 中文字幕av亚洲精品一部二部| 亚洲免费激情| 国产专区一区| 免费观看不卡av| 在线日韩av| 欧美影院三区| 久久黄色影院|