目录

JCL - 基础库( Base Library)

Base Library是分区数据集(PDS),它保存要在JCL中执行的程序的加载模块或在程序中调用的编目过程。 可以在JOBLIB库中为整个JCL指定基本库,也可以在STEPLIB语句中为特定作业步骤指定基本库。

JOBLIB Statement

JOBLIB语句用于标识要在JCL中执行的程序的位置。 JOBL语句在JOB语句之后和EXEC语句之前指定。 这只能用于流程序和程序。

语法 (Syntax)

以下是JCL JOBLIB语句的基本语法:

//JOBLIB DD DSN=dsnname,DISP=SHR                                      

JOBLIB语句适用于JCL中的所有EXEC语句。 将在JOBLIB库中搜索EXEC语句中指定的程序,然后搜索系统库。

例如,如果EXEC语句正在执行COBOL程序,则COBOL程序的加载模块应放在JOBLIB库中。

STEPLIB Statement

使用STEPLIB语句来标识要在作业步骤中执行的程序的位置。 STEPLIB语句在EXEC语句之后和作业步骤的DD语句之前指定。

语法 (Syntax)

以下是JCL STEPLIB语句的基本语法:

//STEPLIB DD DSN=dsnname,DISP=SHR                                      

将在STEPLIB库中搜索EXEC语句中指定的程序,然后搜索系统库。 在作业步骤中编码的STEPLIB会覆盖JOBLIB语句。

例子 (Example)

以下示例显示了JOBLIB和STEPLIB语句的用法:

//MYJCL JOB ,,CLASS=6,NOTIFY=&SYSUID
//*
//<b class="notranslate">JOBLIB</b> DD DSN=MYPROC.BASE.LIB1,DISP=SHR
//*
//STEP1 EXEC PGM=MYPROG1
//INPUT1 DD DSN=MYFILE.SAMPLE.INPUT1,DISP=SHR
//OUTPUT1 DD DSN=MYFILES.SAMPLE.OUTPUT1,DISP=(,CATLG,DELETE),
//           RECFM=FB,LRECL=80
//*
//STEP2 EXEC PGM=MYPROG2
//<b class="notranslate">STEPLIB</b> DD DSN=MYPROC.BASE.LIB2,DISP=SHR
//INPUT2 DD DSN=MYFILE.SAMPLE.INPUT2,DISP=SHR
//OUTPUT2 DD DSN=MYFILES.SAMPLE.OUTPUT2,DISP=(,CATLG,DELETE),
//           RECFM=FB,LRECL=80                                      

这里,在MYPROC.SAMPLE.LIB1中搜索程序MYPROG1的加载模块(在STEP1中)。 如果未找到,则在系统库中搜索。 在STEP2中,STEPLIB覆盖JOBLIB,并在MYPROC.SAMPLE.LIB2中搜索程序MYPROG2的加载模块,然后在系统库中搜索。

INCLUDE Statement

可以使用INCLUDE语句将在PDS成员中编码的一组JCL语句包括在JCL中。 当JES解释JCL时,INCLUDE成员中的一组JCL语句将替换INCLUDE语句。

语法 (Syntax)

以下是JCL INCLUDE语句的基本语法:

//name <b class="notranslate">INCLUDE</b> MEMBER=member-name                                      

INCLUDE语句的主要目的是可重用性。 例如,跨多个JCL使用的公共文件可以编码为INCLUDE成员中的DD语句,并在JCL中使用。

Dummy DD语句,数据卡规范,PROC,JOB,PROC语句不能在INCLUDE成员中编码。 INLCUDE语句可以在INCLUDE成员中编码,并且可以进一步嵌套最多15个级别。

JCLLIB Statement

JCLLIB语句用于标识作业中使用的私有库。 它既可以用于instream也可以用于编目程序。

语法 (Syntax)

以下是JCL JCLLIB语句的基本语法:

//name <b class="notranslate">JCLLIB</b> ORDER=(library1, library2....)                                  

将按给定顺序搜索JCLLIB语句中指定的库,以查找作业中使用的程序,过程和INCLUDE成员。 JCL中只能有一个JCLLIB语句; 在JOB语句之后和EXEC和INCLUDE语句之前指定,但它不能在INCLUDE成员中编码。

例子 (Example)

在以下示例中,按MYPROC.BASE.LIB1,MYPROC.BASE.LIB2,系统库的顺序搜索程序MYPROG3和INCLUDE成员MYINCL。

//MYJCL JOB ,,CLASS=6,NOTIFY=&SYSUID
//*
//MYLIB <b class="notranslate">JCLLIB</b> ORDER=(MYPROC.BASE.LIB1,MYPROC.BASE.LIB2)
//*
//STEP1 EXEC PGM=<b class="notranslate">MYPROG3</b>
//INC <b class="notranslate">INCLUDE</b> MEMBER=MYINCL
//OUTPUT1 DD DSN=MYFILES.SAMPLE.OUTPUT1,DISP=(,CATLG,DELETE),
//           RECFM=FB,LRECL=80
//*                                
↑回到顶部↑
WIKI教程 @2018