睡眠时间

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     .