【问题标题】:Passing SYSUID and JOB ID as parameter to COBOL program through JCL通过 JCL 将 SYSUID 和 JOB ID 作为参数传递给 COBOL 程序
【发布时间】:2012-04-26 07:42:05
【问题描述】:

我需要将 SYSUID 和 JOBID 传递给 cobol 程序以进行日志记录,这怎么可能?,

同样可以作为 JCL 中查询的输入传递。

提前致谢。

【问题讨论】:

    标签: cobol jcl


    【解决方案1】:

    SYSUID 很简单,只需将其添加到EXEC 语句的PARM 参数即可。

    //ASTEP EXEC PGM=A#PGM,PARM='&SYSUID'
    

    JOBID 不能作为参数使用。如果需要,您必须编写 COBOL 代码以链接 z/OS control blocks(请参阅该链接中的数据区书籍)。可以这样做,但我不建议这样做。

    如果你真的想得到作业编号,你可以编写代码去到 PSA 控制块,它位于相对内存位置 0。从那里你得到一个指向当前 TCB 的指针,它位于PSA,从 TCB 获得 TCBJSCBB 字段,它是指向 JSCB 的指针,从 JSCB 中的 TCBJSCBB 字段获得指向 SSIB 的指针,其中包含 SSIBJBID 字段,即作业号。所有这些控制块 PSA、TCB、JSCB 和 SSIB 都记录在上面的链接中(对于 z/OS 2.4)。我重申我不建议这样做。

    Longpela 的 two parts 中有一个关于通过 z/OS 控制块链接的教程。

    【讨论】:

      【解决方案2】:

      我同意@cschneid 的观点,即您不想为了获得工作编号而进行所有的指针链接。当然,我们在创建“横幅页面打印”程序时确实这样做了。我们的代码基于http://gsf-soft.com/Freeware/COB2JOB.shtml

      【讨论】:

        【解决方案3】:

        如果您对在 LINKAGE SECTION、REDEFINE-ing POINTER 和 COMP-5 项目中使用 SET ADDRESS OF 项目感到满意,以及从汇编程序 DSECT 创建 01 级结构,那么一定要这样做。作为一个轻量级的 COBOL 子例程,它的开销并不比汇编例程多多少(但汇编器更好)。如果您对 REXX STORAGE 功能感到满意,可以查看 Dave Alcock 的 IPLINFO 程序。

        但是,如果你不知道我提到的 COBOL 语言结构,那就写一个汇编子程序,或者请人来写。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-09-08
          • 1970-01-01
          • 2018-04-11
          • 1970-01-01
          • 2012-05-02
          • 2015-01-09
          相关资源
          最近更新 更多