睡眠時間

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     .