JCL - 安装和环境设置
在 Windows/Linux 上安装 JCL
有许多适用于 Windows 的免费大型机模拟器,可用于编写和学习示例 JCL。
Hercules 就是这样的模拟器之一,通过执行下面给出的几个简单步骤,可以轻松地将其安装在 Windows 中:
下载并安装 Hercules 模拟器,该模拟器可从 Hercules 的主页获取 - : www.hercules-390.eu
有关编写和执行 JCL 的各种命令的完整指南可以在 URL www.jaymoseley.com/hercules/installmvs/instmvs2.htm 上找到
Hercules 是大型机 System/370 和 ESA/390 架构以及最新 64 位 z/Architecture 的开源软件实现。 Hercules 在 Linux、Windows、Solaris、FreeBSD 和 Mac OS X 下运行。
在大型机上运行 JCL
用户可以通过多种方式连接到大型机服务器,例如瘦客户端、虚拟终端、虚拟客户端系统 (VCS) 或虚拟桌面系统 (VDS)。
每个有效用户都会获得一个登录 ID 来进入 Z/OS 界面(TSO/E 或 ISPF)。 在 Z/OS 接口中,JCL 可以被编码并存储为分区数据集 (PDS) 中的成员。 当提交 JCL 时,它将被执行并接收输出,如前一章作业处理部分中所述。
JCL 的结构
下面给出了带有公共语句的 JCL 的基本结构:
//SAMPJCL JOB 1,CLASS=6,MSGCLASS=0,NOTIFY=&SYSUID (1) //* (2) //STEP010 EXEC PGM=SORT (3) //SORTIN DD DSN=JCL.SAMPLE.INPUT,DISP=SHR (4) //SORTOUT DD DSN=JCL.SAMPLE.OUTPUT, (5) // DISP=(NEW,CATLG,CATLG),DATACLAS=DSIZE50 //SYSOUT DD SYSOUT=* (6) //SYSUDUMP DD SYSOUT=C (6) //SYSPRINT DD SYSOUT=* (6) //SYSIN DD * (6) SORT FIELDS=COPY INCLUDE COND=(28,3,CH,EQ,C'XXX') /* (7)
程序描述
编号的 JCL 语句已解释如下:
(1) JOB 语句 - 指定 SPOOLing 作业所需的信息,例如作业 ID、执行优先级、作业完成时要通知的用户 ID。
(2) //* 语句 - 这是一条注释语句。
(3) EXEC 语句 - 指定要执行的 PROC/程序。 在上面的示例中,正在执行 SORT 程序(即按特定顺序对输入数据进行排序)
(4) Input DD 语句 - 指定要传递给 (3) 中提到的程序的输入类型。 在上面的示例中,物理顺序 (PS) 文件作为共享模式 (DISP = SHR) 的输入进行传递。
(5) Output DD 语句 - 指定程序执行时产生的输出类型。 在上面的示例中,创建了一个 PS 文件。 如果一条语句超出了一行中的第 70 个位置,则它会在下一行中继续,下一行应以"//"开头,后跟一个或多个空格。
(6) 可以有其他类型的 DD 语句来为程序指定附加信息(在上面的示例中:SORT 条件在 SYSIN DD 语句中指定)并指定错误/执行日志的目标(示例:SYSUDUMP/SYSPRINT)。 DD 语句可以包含在数据集(大型机文件)中,也可以包含在流数据(JCL 中硬编码的信息)中,如上面的示例所示。
(7) /* 标记流数据的结束。
除了流数据中的所有 JCL 语句都以 // 开头。 JOB、EXEC 和 DD 关键字前后至少应有一个空格,并且语句的其余部分不应有任何空格。
作业参数类型
每个 JCL 语句都附有一组参数,以帮助操作系统完成程序执行。 参数可以有两种类型:
位置参数
出现在语句中预定义的位置和顺序。 示例:会计信息参数只能出现在JOB关键字之后、程序员姓名参数和关键字参数之前。 如果省略位置参数,则必须用逗号替换。
位置参数出现在 JOB 和 EXEC 语句中。 在上面的示例中,PGM 是在 EXEC 关键字之后编码的位置参数。
关键字参数
它们在位置参数之后进行编码,但可以以任何顺序出现。 如果不需要,关键字参数可以省略。 通用语法是 KEYWORD= value。 示例:MSGCLASS=X,即作业完成后将作业日志重定向到输出SPOOL。
在上面的例子中,CLASS、MSGCLASS和NOTIFY是JOB语句的关键字参数。 EXEC语句中也可以有关键字参数。
这些参数已在后续章节中连同适当的示例进行了详细说明。