睡眠時間
CALL 也是一種擴充套件 COBOL 功能的方法,也是一種允許程式碼重用的方法。它還可以提供對系統功能的訪問。
此示例說明了為 IBM Mainframe COBOL 提供睡眠功能的方法。請記住,這樣做的要求很少,通常當某人認為他們因某種原因需要睡覺時,這是錯誤的。
ILBOWAT0 來自 Mainframes 上舊的 COBOL 特定執行時代。BXP1SLP 和 BXP4SLP 是 Unix 系統服務(USS)例程,可以被任何語言使用。實際上它們是 Unix睡眠請求。
當前的 IBM Mainframe Runtime(語言環境(LE))提供了語言間通訊,而 CEE3DLY LE 服務則顯示在另一個示例中,使用 z / OS 語言環境執行緒延遲服務 。
ILBOWAT0 已經存在了很長時間(可能超過 40 年),你可能仍會遇到它。它的用途應該用 CEE3DLY 或 BXP1SLP 代替,以較適合特定要求為準。
有時你需要讓程式進入睡眠狀態,或者導致 Job 暫停一段時間(在 FTP 或 NDM 步驟之後),這通常作為單獨的作業執行,你需要睡眠/迴圈查詢生成的資料集。
這是一個可愛的小 COBOL 程式來執行上述任務,呼叫 OS / VS 中可用的 COBOL 睡眠程式以及其他傳統和當前大型機操作環境。
IDENTIFICATION DIVISION.
PROGRAM-ID. SLEEPYTM.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WAIT-PARM.
05 WAIT-TIME PIC S9(8) COMP VALUE 90.
05 WAIT-RESPONSE PIC S9(8) COMP VALUE 0.
05 WAIT-PROGRAM-24BIT PIC X(8) VALUE 'ILBOWAT0'.
05 WAIT-PROGRAM-31BIT PIC X(8) VALUE 'BPX1SLP '.
05 WAIT-PROGRAM-64BIT PIC X(8) VALUE 'BPX4SLP '.
PROCEDURE DIVISION.
GENESIS.
DISPLAY 'START CALLING WAIT PROGRAM'
CALL WAIT-PROGRAM-24BIT USING WAIT-TIME WAIT-RESPONSE
DISPLAY 'END CALLING WAIT PROGRAM'
GOBACK
PERIOD .