如何从主 jcl 安排子 jcl

问题描述 投票:0回答:3

例如,在执行和运行一个cobol db2程序时,我们需要提交多个jcl,因此需要将所有这些子jcl放在我的主jcl下,这样我只需要提交一个jcl,编译和执行就完成了。

                                      main jcl
                                  -       -      - 
                                  -       -      - 
                                jcl1     jcl2   jcl3

含有: 我无法更新 jcl1、jcl2 和 jcl3。

mainframe zos jcl
3个回答
0
投票

JOBLIB
STEPLIB
是包含可执行文件(即程序)的库列表。它们包含工作,即 JCL。

从运营角度来看,不存在子 JCL 之类的东西。每个作业都是一组单独的 JCL 语句,它们可以存储为 JCL 库的成员,也可以由程序生成。

如果您的 COBOL 程序需要决定何时提交以及提交哪个作业,则它需要了解每个作业的库和成员。然后,它可以从库中读取成员并将记录写入INTRDR数据集。例如,COBOL 程序的 JCL 可以:三个作业中每一个的 contian DD 语句以及一个用于提交作业的 INTRDR DD。

//jobname JOB ....
...
//stepname EXEC PGM=your-cobol-pgm
//...
//JOB1     DD DISP=SHR,DSN=your.jcl.lib(JOB1)
//JOB2     DD DISP=SHR,DSN=your.jcl.lib(JOB2)
//JOB3     DD DISP=SHR,DSN=your.jcl.lib(JOB3)
//SUBMIT   DD SYSOUT=(A,INTRDR)
...

我不是 COBOL 程序员,所以我不会尝试给出示例代码。在 COBOL 代码中,您为每个作业声明文件,即 JOB1、JOB2 和 JOB3,并为 INTRDR 声明一个文件,即

SUBMIT
(请注意,DD 名称 SUBMIT 是任意选择的;它几乎可以是任何名称你想要)。

当提交作业 1 时,您打开文件

JOB1
SUBMIT
,然后从
JOB1
读取每条记录并立即将其写入
SUBMIT
。最后,关闭这两个文件,并通过关闭
SUBMIT
,您将告诉 JES 处理该作业。


0
投票

您可能想探索 JES2 执行控制语句,它允许您使用 JCL 完成所有这些工作。


0
投票

最好、最干净的方法是将它们全部放入 JCL 过程中并从作业中调用它们。

© www.soinside.com 2019 - 2024. All rights reserved.