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

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

DB2 for z/OS Web 應(yīng)用程序死鎖分析

瀏覽:45日期:2023-11-11 10:08:06
本文闡述了開(kāi)發(fā)人員和測(cè)試人員如何確定 DB2 for z/OS 環(huán)境下復(fù)雜 Web 應(yīng)用程序中的死鎖原因。簡(jiǎn)介在任何數(shù)據(jù)庫(kù)環(huán)境中,死鎖檢測(cè)對(duì)于應(yīng)用程序并發(fā)性都是很重要的。就像其他應(yīng)用程序一樣,在復(fù)雜 Web 環(huán)境中也需要能夠確定任何死鎖的起因。本文解釋了如何配置 DB2 for os/390 的死鎖跟蹤設(shè)置,以啟用死鎖分析。先闡述了如何指定相關(guān)的 DB2 for z/OS 跟蹤以獲取足夠信息,然后說(shuō)明如何分析這些跟蹤報(bào)告,并指出引起 DB2 for z/OS 環(huán)境中運(yùn)行的復(fù)雜 Web 應(yīng)用程序出現(xiàn)死鎖的不良 SQL 語(yǔ)句。本文假定讀者熟悉基本的 z/OS 操作。使用 DB2 Performance Monitor 來(lái)配置跟蹤Locking 跟蹤若要啟用 Locking 跟蹤,首先打開(kāi) IBM DB2 Performance Monitor 應(yīng)用程序。然后執(zhí)行下面步驟:配置 Collect Task A 以收集死鎖跟蹤。設(shè)置 Trigger by 4=Immediate Start 以立即激活任務(wù)。選擇 Locking, Data Type, IFICD, Requesting Location, Plan name and Authid,然后按 Enter。圖 1. 配置 Collect Task ADB2 for z/OS Web 應(yīng)用程序死鎖分析選擇數(shù)據(jù)類型 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 跟蹤數(shù)據(jù)的輸出數(shù)據(jù)集(例如,TGUSER03.DB2PM.TRACE01)。設(shè)置 Disposition 為 Overwrite。注重:可以使用其他方法來(lái)配置 DB2 跟蹤停止觸發(fā)器(例如,經(jīng)過(guò)一段時(shí)間后)。圖 3. Trigger immediately 面板按 Enter,完成 Locking 跟蹤配置。假如 Web 應(yīng)用程序運(yùn)行期間有死鎖,則激活 Collect Task A 來(lái)收集死鎖信息。SQL Activity 跟蹤按照下面步驟來(lái)配置 SQL Activity 跟蹤:配置 Collect Task B 以收集 SQL Activity 跟蹤。設(shè)置 Trigger by 4=Immediate Start 來(lái)立即激活任務(wù)。選擇 SQL Activity, Data Type, IFCID, Requesting Location, Plan name and Authid,然后按 Enter。選擇全部收集數(shù)據(jù)類型,然后按 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 跟蹤數(shù)據(jù)的輸出數(shù)據(jù)集(例如,TGUSER03.DB2PM.TRACE02)。設(shè)置 Disposition 為 Overwrite。注重:可以使用其他方法來(lái)配置 DB2 跟蹤停止觸發(fā)器(例如,經(jīng)過(guò)一段時(shí)間后)。按 Enter 完成 SQL Activity 配置。在 Web 應(yīng)用程序運(yùn)行期間,激活 Collect Task B 來(lái)收集 SQL 語(yǔ)句。分析跟蹤報(bào)告以確定不良 SQL 語(yǔ)句Web 應(yīng)用程序中 DB2 鎖的原理通常 Web 應(yīng)用程序有頁(yè)鎖和行鎖。根據(jù)創(chuàng)建數(shù)據(jù)庫(kù)所使用的數(shù)據(jù)定義語(yǔ)言 (DDL) 模式文件,可以確定正在使用的鎖類型。行鎖有三種模式:S(Share)、U(Update) 和 X(Exclusive)。要盡量避免的鎖影響是掛起、超時(shí)和死鎖。當(dāng)兩個(gè)或兩個(gè)以上應(yīng)用程序進(jìn)程均持有對(duì)資源(該資源是其他進(jìn)程所需,且沒(méi)有該資源時(shí)進(jìn)程無(wú)法繼續(xù)進(jìn)行)的鎖時(shí),會(huì)發(fā)生死鎖。下面是關(guān)于發(fā)生死鎖情況的具體解釋:JobOne 和 JobTwo 是兩個(gè)事務(wù)。JobOne 訪問(wèn)表 M,并持有頁(yè) B 的 X (exclusive) 鎖,包含記錄 000300。JobTwo 訪問(wèn)表 N,并持有頁(yè) A 的 X (exclusive) 鎖,包含記錄 000010。JobOne 請(qǐng)求表 N 頁(yè) A 的鎖,同時(shí)仍持有表 M 頁(yè) B 的鎖。因?yàn)?JobTwo 持有頁(yè) A 的 X 鎖,所以作業(yè)被掛起。JobTwo 請(qǐng)求表 M 頁(yè) B 的鎖,同時(shí)仍持有表 N 頁(yè) A 的鎖。因?yàn)?JobOne 持有頁(yè) B 的 X 鎖,所以作業(yè)被掛起。這種情況就是死鎖。為了改善應(yīng)用程序的并發(fā)性,您需要找到引起死鎖的 SQL 語(yǔ)句。然后,優(yōu)化 SQL 語(yǔ)句以消除死鎖。根據(jù)死鎖報(bào)告來(lái)分析鎖信息作為例子,我們假定當(dāng)多個(gè)顧客同時(shí)登錄并注冊(cè)一個(gè)商店時(shí)發(fā)生死鎖。您已經(jīng)得到死鎖跟蹤報(bào)告和 SQL 語(yǔ)句報(bào)告。首先,您應(yīng)檢查死鎖跟蹤報(bào)告(在本文中為 TGUSER03.DB2PM.LOCKS)。下面是跟蹤報(bào)告中一些要害參數(shù)的說(shuō)明,有助于理解該進(jìn)程:圖 4. 跟蹤參數(shù)分析一下表 USERS(圖 5 和圖 6)上的第一個(gè)死鎖。在圖 5 中,可以看到死鎖涉及到兩個(gè)資源。分別是 row X'2B'、page X'00004E'、page USERS、DB SW03DB1 和 row X'2B'、page X'00004C'、table USERS、DB SW03DB1。WAITERS =2 表明死鎖中有兩個(gè)等待者(0CC544053119 和 0E26A4053107)。死鎖發(fā)生在 12/05/05 06:30:09.40。從圖 6 可以看到資源持有者和等待者與圖 5 中的相反。等待者(實(shí)際上是圖 5 中的持有者)正在請(qǐng)求持有者(實(shí)際上是圖 5 中的等待者)所持有的資源。按照死鎖的定義,在這種情況下會(huì)發(fā)生死鎖。現(xiàn)在,利用圖 5 和圖 6 來(lái)總結(jié)一下鎖關(guān)系。從圖 5 中可以看到 LUW 0CC544053119 所持有的鎖是 row X'2B'、page X'00004E'、table USERS、DB SW03DB1 上的行鎖,且保持在 X 狀態(tài)。等待者 LUW 實(shí)例 0E26A4053107 正在請(qǐng)求同一個(gè)資源上的 S 鎖模式。而在圖 6 中,LUW 0E26A4053107 所持有的鎖是 row X'2B'、page X'00004C'、table USERS、DB SW03DB1 上的行鎖,且保持在 X 狀態(tài)。等待者 LUW 實(shí)例 0CC544053119 正在請(qǐng)求同一個(gè)資源上的 S 鎖模式。因此發(fā)生死鎖。最后,請(qǐng)注重圖 5 中的 BLOCKER is HOLDER --*VICTIM*,該線程 ("victim") 的作用是回滾以進(jìn)行其他線程。圖 5. Locking 跟蹤 —— 死鎖報(bào)告圖 6. Locking 跟蹤 —— 死鎖報(bào)告表 1 總結(jié)死鎖分析:表 1. 死鎖分析LUW 實(shí)例持有的資源(X 鎖)請(qǐng)求的資源(S 鎖)死鎖時(shí)間表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根據(jù) SQL 活動(dòng)報(bào)告來(lái)分析 SQL 信息打印 SQL ACTIVITY 跟蹤(在本文中為 TGUSER03.DB2PM.SQL),使用死鎖所涉及的 LUW INSTANCE 數(shù)量(0CC544053119 和 0E26A4053107)進(jìn)行過(guò)濾。可以發(fā)現(xiàn)最后一次 commit 操作應(yīng)正好在死鎖出現(xiàn) (06:30:09.41044991) 前完成。接下來(lái),搜索僅在完成最后一次 commit 操作后執(zhí)行的 SQL 語(yǔ)句。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因此,應(yīng)該研究那些訪問(wèn)過(guò) SW03DB1.USERS 且在 06:28:51.04 到 06:30:09.41044991 之間執(zhí)行的 SQL 語(yǔ)句。如圖 7 所示。圖 7. SQL 報(bào)告根據(jù)鎖狀態(tài) X 和 S,對(duì)于資源 SW03DB1.USERS,在 SELECT 語(yǔ)句之前應(yīng)是 INSERT 語(yǔ)句。按照同樣的方法,對(duì)于 INSTANCE 0E26A4053107,可以找到在出現(xiàn)死鎖前進(jìn)行最后一次 commit 的時(shí)間.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然后,研究那些訪問(wèn)過(guò) SW03DB1.USERS 且在 06:28:50.65 到 06:30:09.41044991 之間執(zhí)行的 SQL 語(yǔ)句。如圖 8 所示。圖 8. SQL 報(bào)告從圖 5 和圖 6 中可以看到兩個(gè)實(shí)例 0CC544053119 和 0E26A4053107 正嘗試提交 INSTER INTO USERS 和 SELECT FROM USERS SQL 語(yǔ)句。由于 INSERT 和 SELECT 語(yǔ)句之間沒(méi)有 COMMIT,死鎖可能是由表掃描引起的。因此運(yùn)行并發(fā)線程時(shí),出現(xiàn)了死鎖。結(jié)束語(yǔ)本文闡述了如何使用 DB2 Performance Monitor 工具來(lái)收集死鎖和 SQL Activity 跟蹤。另外,給出了一個(gè)例子,演示如何通過(guò)分析跟蹤找到一個(gè)死鎖情況所涉及的 SQL 語(yǔ)句。使用該方法,開(kāi)發(fā)人員和測(cè)試人員都可以發(fā)現(xiàn)不良 SQL 語(yǔ)句,并完成并發(fā)性能問(wèn)題解決方案的第一步。
標(biāo)簽: DB2 數(shù)據(jù)庫(kù)
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲涩涩av| 欧美精品国产一区| 久久久精品五月天| 欧美天堂在线| 国产精品日本欧美一区二区三区| 成人精品久久| 视频在线不卡免费观看| 国产精品3区| 国产视频一区二| 国产精品激情电影| 久久不见久久见免费视频7| 7777精品| 老牛国内精品亚洲成av人片| 国产日韩三级| 久久免费影院| 日韩精品dvd| 黄色亚洲免费| 午夜天堂精品久久久久| 久久激情五月激情| 91精品国产一区二区在线观看 | 欧美日本久久| 美女精品视频在线| 国产不卡精品| 日韩欧美一区二区三区免费观看| 香蕉视频亚洲一级| 在线一区免费观看| 国产亚洲人成a在线v网站| 麻豆一区二区三| 三级精品视频| 一本一道久久a久久| 国产精品伊人| 欧美日韩视频一区二区三区| 亚洲欧美网站| 欧美极品中文字幕| 亚洲精品一二三区区别| 欧美日一区二区三区在线观看国产免 | 美女久久精品| 亚洲经典在线| 美女精品久久| 蜜桃视频第一区免费观看| 国产一区二区三区天码| av亚洲在线观看| 美女精品视频在线| 亚洲精选91| 成人久久久久| 国产精品嫩模av在线| aa亚洲婷婷| 中文字幕在线免费观看视频| 日韩成人午夜精品| 日韩午夜免费| 久久精品1区| 国产乱人伦丫前精品视频| 视频一区二区中文字幕| 欧美日韩国产在线一区| 日韩一区二区三区免费播放| 18国产精品| 黄色在线一区| 欧美亚洲国产激情| yellow在线观看网址| 国产精品天堂蜜av在线播放| 久久最新视频| 国产精品毛片| 久久国产精品毛片| 亚洲欧美日韩在线观看a三区| 欧美日韩精品一区二区视频| 麻豆理论在线观看| 福利一区视频| 日韩理论视频| 中文字幕在线看片| 亚洲性色av| 99视频精品全国免费| 国产精品久久免费视频| 久久精品凹凸全集| 国产精品最新| 麻豆极品一区二区三区| 麻豆极品一区二区三区| 精品国产欧美| 亚洲伦乱视频| 国产一区91| 蜜臀91精品一区二区三区| 老司机久久99久久精品播放免费| 丝瓜av网站精品一区二区| 亚洲一区二区三区免费在线观看| 国产视频一区欧美| 日韩一区二区三区在线看| 香蕉久久一区| 麻豆国产欧美一区二区三区| 久久精品一区二区三区中文字幕| 国产欧美成人| 色天使综合视频| 天堂网在线观看国产精品| 亚洲狼人精品一区二区三区| 国产亚洲一区二区三区不卡| 国产不卡精品| 蜜桃一区二区三区在线观看| 国产精品传媒麻豆hd| 久久精品91| 日韩精品国产精品| 桃色一区二区| 日本一区中文字幕| 四虎4545www国产精品| 亚洲综合不卡| 福利视频一区| 在线观看视频免费一区二区三区| 国产精品一区二区三区av麻| 日韩理论视频| 欧美另类中文字幕 | 国产精品99精品一区二区三区∴ | 日本欧美韩国一区三区| 日韩网站中文字幕| 一区二区三区午夜视频| 欧美不卡高清一区二区三区| 日韩高清一区在线| 国产精品国产一区| 日韩av中文在线观看| 日韩一区二区三区在线看| 午夜精品网站| 视频一区二区三区入口| 日韩免费久久| 国产精品探花在线观看| 亚洲精选av| 日韩欧美午夜| 欧美1区2区3| 日本午夜精品| 日本不卡一二三区黄网| 日韩国产欧美一区二区| 国产精品黄色| 国产精品一国产精品| 日韩国产91| а√天堂8资源在线| 国产精区一区二区| 国产免费播放一区二区| 亚洲视频二区| 蜜臀av在线播放一区二区三区| 午夜免费一区| 亚洲精品一区二区在线看| 久久久久亚洲| 久久久久久久久99精品大| 精品成人免费一区二区在线播放| 国产a亚洲精品| 国产精品777777在线播放| 国产精品中文字幕亚洲欧美 | 精品1区2区3区4区| 亚洲欧美视频一区二区三区| 久色成人在线| 国产精品最新自拍| 国产一区二区三区日韩精品| 91麻豆国产自产在线观看亚洲| av高清不卡| 国产精品日本| 欧美日韩18| 欧美久久天堂| 国产一区亚洲| 亚洲欧美视频一区二区三区| 青草久久视频| 日韩在线第七页| 五月天久久777| 日韩avvvv在线播放| 成人午夜毛片| 国产亚洲永久域名| 国产精品美女久久久久久不卡| 国产一区二区三区天码| 国产亚洲精品v| 精品国产亚洲一区二区三区大结局| 婷婷激情一区| 综合视频一区| 国产成人精品一区二区免费看京 | 日韩欧美中文字幕一区二区三区| 国产欧美日韩一区二区三区四区| 精品一区视频| 久久都是精品| 成人影视亚洲图片在线| 在线一区电影| 国内不卡的一区二区三区中文字幕| 久久久噜噜噜| 久久av网址| 婷婷综合电影| 亚洲电影在线一区二区三区| 国产精品二区影院| 不卡在线一区| 成人在线丰满少妇av| 日韩av网站在线免费观看| 99久久九九| 粉嫩av一区二区三区四区五区| 亚洲香蕉久久| 亚洲一区日本| 一区在线观看| 久久黄色影院| 亚洲精品福利电影| 久久影院一区二区三区| 日韩高清一级| 欧美日韩a区| 亚洲精品麻豆| 最新国产精品久久久| 国产一区二区三区四区大秀| 国产日韩一区| 久久不见久久见免费视频7| 国产亚洲一区二区三区啪| 日韩成人精品一区二区三区| 日韩午夜视频在线|