Categorizing Problems - Categorizing Problems

課程正文
問題分類 模組
繼續使用本教材即表示您同意這些條款與條件。Interskill Learning Pty. Ltd. © 2024
學習檢核
- 能用自己的話說明「Categorizing Problems」在本 topic 中的用途。
- 能判斷本頁內容應回到哪一個大型主機工作情境中使用。

問題分類 模組
繼續使用本教材即表示您同意這些條款與條件。Interskill Learning Pty. Ltd. © 2024

目標:分類問題
在本模組中,您將調查某些系統錯誤,以及可用的復原手段。
完成本模組後,您應能:

z/OS 使用不同的元件來處理各類錯誤。這些可以分為硬體復原與軟體復原兩大類。
可能發生問題的領域大致可分為如下幾類,復原工作則由作業系統自動執行、由相關 IT 專業人員採取行動處理,或透過專門的自動化產品完成。
本節討論用於從這些領域錯誤中復原的主要機制。

machine check handler (MCH) 是作業系統的一個元件,當發生可能會影響系統的機器故障時,會由它接管控制權。MCH 會分析硬體提供給它的錯誤資訊。
處理完成後,它會將分析結果記錄到 logrec 資料集中,並呼叫 RTM;RTM 會在可能的情況下恢復被中斷的程式,否則終止該程式。
按一下 Play 以檢視這個概念的動畫。

Alternate CPU Recovery (ACR) 元件使多處理器系統能夠在某個處理器發生故障時,透過在另一個運作中的處理器上復原該錯誤來恢復運作。
MODE 指令可用來定義機器檢查(machine check)閾值,因此當處理器錯誤超過此限制時,ACR 會將發生故障的處理器設定為離線。ACR 也會啟動釋放故障處理器上所持有的系統資源。
按一下「播放」以觀看 ACR 的範例。

子通道登出處理程序 (SLH) 不執行任何復原功能。
它僅將通道偵測到的錯誤狀況記錄到 logrec 資料集中,然後允許裝置相依的錯誤復原程序重試失敗的 I/O。
按一下 Play 可觀看 SLH 的範例。

動態裝置重新配置 (DDR) 機制可透過提供替代的 I/O 裝置(僅限可拆卸裝置),在硬體裝置失效時處理資料,以迴避裝置的 I/O 錯誤。
按一下 Play 以檢視 DDR 的範例。

Missing interrupt handler (MIH) 持續檢查預期的 I/O 中斷是否在指定時間內發生。
如果超過此時間限制,系統會認定中斷遺失,並向操作員發出訊息,且在 logrec 資料集中建立一筆記錄。
按一下 Play 可檢視 MIH 的範例。

復原終止管理程式 (RTM) 處理所有工作與位址空間的異常終止,然後將控制權傳遞給與終止功能相關的特定復原例程。

復原是嘗試更正硬體或軟體問題,並使系統可用以進行正常處理。復原可以由硬體、軟體、操作員、自動化程式,或這些方式的組合來執行。
如果復原需要來自硬體和軟體系統之外的動作,通常會發出一或多則系統訊息,操作員或自動化系統會回應以執行復原。
按一下 Play 以檢視系統復原流程的範例。

摘要:問題分類
在本模組中,您已針對一些系統錯誤進行調查,並了解可用來復原的方式。
您檢視了 z/OS 下可用的復原機制,並觀察了停用與啟用的等待與掛起現象。您也看到如何啟動 Runtime Diagnostics 以及它在識別系統問題時所提供的協助類型。
您現在應該能夠:

在 z/OS 環境中發生的許多問題,會以等待或掛起的形式顯現。等待和掛起是用來描述作業系統或其上執行的某些元件停止處理的情況。系統可能進入下列狀態之一:
接下來的頁面將討論這些狀態,說明它們的原因、症狀、識別方法,以及遇到時應採取的動作。

當發生停用等待(disabled wait)時,處理會停止,系統會載入等待狀態的 PSW。等待狀態 PSW 容易辨識。
應在 MVS System Codes 手冊中查閱這些代碼,以判斷應採取的動作以及該等待是否可恢復。
停用等待有兩種類型:
可重啟:表示可以執行 PSW 重新啟動。 不可重啟:在系統重新執行 IPL(reIPL)之前,會先進行單機傾印(stand-alone dump)。

此處所示的 PSW 提供一個在 IPL 期間發生之停用等待的範例。
MVS System Codes 中對等待碼 007 的說明指出沒有可用的控制台。操作員應檢查平常使用的控制台及其所連接的控制器是否已準備就緒,然後重新 IPL。
若問題再次發生,可能需要聯絡系統程式設計師以確認是否使用正確的 I/O 定義。

圖示顯示來自 SYS1.PARMLIB(DIAG01) 的程式碼。以下兩個區段已標示為重點。
貴站點可透過在 parmlib 的 DIAGxx 成員中指定 AutoIPL 原則,自動化與特定停用等待狀態代碼相關的一些系統終止與 IPL 作業。
當系統遇到停用的等待狀態時,系統會參考一個內嵌的表格(等待狀態動作表),該表格包含等待狀態和原因代碼;若發生比對符合,則會依 DIAGxx 成員中所定義的內容,執行獨立轉儲(SADMP)及/或自動 IPL。
將滑鼠移到 AutoIPL 參數上,可檢視每個項目的詳細功能說明。

當發生啟用等待(enabled wait)時,處理會停止,且沒有任何明顯的錯誤指示。這可能不代表實際發生錯誤,需對 PSW 進行診斷。
在啟用等待期間,你可能會遇到持續出現等待訊息,隨後又出現一段突發活動的情況。一種特殊型態的啟用等待,稱為 dummy wait(或 no work wait),會在 dispatcher 無法找到任何可派送的工作時發生。

已啟用等待是由系統等待下列其中一項所造成:

要從已啟用的等待中復原,您必須找出系統正在等待的項目,然後使其可用。
動畫中列出了一些您可以嘗試的項目。
按一下 Play 以檢視在發生等待時您可以採取的操作範例。

如果子系統、位址空間或作業沒有任何處理,則稱為掛起。
操作員應注意掛起情況,例如 CICS 區域不再回應、在系統中停留很久卻沒有任何處理的作業,或 TSO 使用者表示他們「卡住」等。上述情況都可能是掛起。
使用所有可用的調查工具,例如 RMF 或子系統專用的監控工具。掛起可能是由等待造成,因此也值得檢查 DFSMShsm 的動作,因為所需的資料集可能正在被召回。

如果掛起的位址空間、作業或子系統無法復原,您可能需要取消並重新啟動它。
為協助問題判定,系統程式設計人員可能會要求您在執行此操作之前先產生轉存。

如果某個裝置似乎已掛住,操作員可能會考慮嘗試將其強制置於離線狀態。請注意,為執行此操作所發出的指令也可能會掛住,這取決於問題的性質。在這種情況下,用於將裝置變更為離線的指令可能有一個可選的 FORCE 參數,用來使該裝置離線並被標示為 boxed。
這應會導致該裝置先前所持有的所有系統資源被釋放。

迴圈(或無限迴圈)是指程式不斷重複相同指令序列。迴圈可分為三種類型:
任何迴圈都會徒然消耗資源,並可能主導甚至接管整個系統。
按一下 Play 以檢視迴圈範例。

啟用迴圈通常是由應用程式的錯誤所造成。
由於它會在不同 CPU 間移動,因此可能不易發現,但系統很可能會處理它,因為系統對作業或作業步驟可使用的時間或 CPU 處理量設有限制。當超過這些限制之一時,該作業會自動被取消。
如果您發現發生迴圈的作業,可在與該作業的擁有者協商後自行取消它。
點選 Play 以檢視一個啟用迴圈的範例。

已停用的迴圈比已啟用的迴圈較容易被偵測,但其後果更嚴重。這是因為若迴圈程式能在停用狀態下執行,該程式很可能屬於作業系統的一部分。
處於已停用迴圈的程式會使系統 CP 使用量增加,常導致主控台鎖定。
按一下 Play 以檢視已停用迴圈的範例。

要從這個迴圈復原,您可以對處於 100% 使用率的處理器執行 PSW restart。如果系統復原,您即可使用 DUMP 指令取得 SVC dump 以進行問題判斷,但可能必須改採 stand-alone dump,然後再執行 IPL。

在多處理器環境中,當一個處理器需要另一個處理器正在使用的非共享資源時,就會發生自旋迴圈。
按一下播放以檢視自旋迴圈的範例。

有時佔用某項資源的處理器發生故障,會導致另一個處理器長時間陷入自旋迴圈。自旋迴圈通常在不需操作員介入的情況下處理,系統會使用 IBM 的預設值來決定自旋門檻以及達到該門檻時要採取的動作。您也可以在邏輯 parmlib 的 EXSPATxx 成員中指定覆寫這些預設值的詳細設定。
可以指定不同的處理動作,針對每一個連續自旋區間到期時嘗試執行對應的動作。最後手段通常是透過交替 CPU 復原 (ACR) 將故障的 CPU 下線。操作員會收到說明正在執行之復原動作的訊息。

本節將介紹 Runtime Diagnostics 功能,可用於更快速地識別並分析可能的問題,方法包括:

S HZR,SUB=MSTR

在初始化 Runtime Diagnostics 後,必要時可使用下列指令啟用:
F HZR,ANALYZE
此指令會分析 OPERLOG 訊息並嘗試識別任何系統問題。執行所需的時間取決於 OPERLOG 的大小、所分析資料的量以及被分析系統的數量。若 Runtime Diagnostics 識別出問題,會建立寫給操作員的訊息,列出問題、提供簡短描述並建議應採取的動作。請注意,這些輸出也可以導向順序資料集。

您可能需要啟動 Runtime Diagnostics 以分析另一個系統的訊息。這可以透過輸入 F HZR,ANALYZE,SYSNAME=systemname 指令來達成。此動作不會執行完整範圍的診斷調查,而僅會在 OPERLOG 中搜尋關鍵訊息並尋找 enqueues。

這表示 Runtime Diagnostics 程序執行的成功情況。此欄可能顯示下列文字之一:SUCCESS:成功完成QUALIFIED SUCCESS - SOME PROCESSING FAILED:處理已完成,但發生部分失敗FAILED - ALL PROCESSING FAILED:處理未成功完成SUCCESS - NO EVENTS FOUND:成功完成且無需回報QUALIFIED SUCCESS - SOME PROCESSING BYPASSED:成功完成,但部分錯誤處理未啟動
此範例顯示 Runtime Diagnostics 所產生的初始資訊,也就是摘要。
將滑鼠移到摘要的各個組件上方以檢視說明。

如前所述,Runtime Diagnostics 會瀏覽 OPERLOG 尋找任何關鍵訊息,若找到就將它們列為已識別事件。它還會根據訊息 ID 及訊息文字內容進一步分析該訊息。

如果 Runtime Diagnostics 偵測到 ENQ 爭用,它會顯示 top waiter(等待該資源時間最久的作業)以及 top blocker(持有該資源時間最久的阻塞作業)。其他等待該資源的作業也會一併顯示。
如果該阻塞作業被視為問題,可能需要取消該作業。

如果任何位址空間使用超過單一 CPU 95% 的處理能力,則其詳細資訊會被 Runtime Diagnostics 擷取。造成位址空間使用如此高 CPU 的原因可能有多種合理解釋,因此需要進一步檢查以判定是否存在可能的迴圈或其他問題。

Runtime Diagnostics 會偵測所有與陷入迴圈的位址空間相關的症狀,並會查詢每個位址空間是否有此類活動。與前一個範例相似,應在決定取消引發問題的作業之前,進一步檢查該活動。

在本節中,您已看到 Runtime Diagnostics 所執行的工作類型,以及如何啟動此子系統。您也檢視了 Runtime Diagnostics 所產生的輸出範例,以及如何解讀這些輸出。

模組完成:分類問題
您可以按「Exit」離開「分類問題」並記錄您的結果,或使用「Table of Contents」回去檢視本模組。
若要重新進行「分類問題」模組測驗,您必須先離開模組,然後在您的 LMS 中重新參加測驗。
注意:為確保您的結果能正確儲存,請使用位於本訓練視窗右上角的「Exit」按鈕。請勿使用瀏覽器右上角的「X」。
本模組的練習測驗與 Module Test 題目已納入「練習與評量」,可依題型或來源篩選練習。本站以非計分模式提供 19 題練習;正式分數、attempt、completion 與憑證仍以 YourLearnings / InterSkill 為準。