Jcl 简明教程

JCL - Environment Setup

Installing JCL on Windows/Linux

有许多可用于 Windows 的免费大型机仿真器,可以用来编写和学习样例 JCL。

其中一个仿真器是 Hercules,它可以通过以下几个简单步骤轻松安装在 Windows 上:

  1. 从 Hercules 主页下载并安装 Hercules 仿真器 - : www.hercules-390.eu

  2. 可在 URL www.jaymoseley.com/hercules/installmvs/instmvs2.htm 上找到关于撰写和执行 JCL 的各种命令的完整指南。

除了最新的 64 位 z/Architecture 架构外,Hercules 还是大型机 System/370 和 ESA/390 架构的开源软件实现。Hercules 可以在 Linux、Windows、Solaris、FreeBSD 和 Mac OS X 下运行。

Running JCL on Mainframes

用户可以通过多种方式连接到大型机服务器,例如精简型客户端、虚拟终端、虚拟客户机系统 (VCS) 或虚拟桌面系统 (VDS)。

每个有效用户都会获得一个登录 ID,用于进入 Z/OS 界面 (TSO/E 或 ISPF)。在 Z/OS 界面中,可以对 JCL 进行编码并将其存储为分区数据集 (PDS) 中的成员。提交 JCL 时,它将执行,并且输出将接收,如前一章的作业处理部分中所述。

Structure of a 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)

Program Description

编号的 JCL 语句已在下面加以说明:

(1) JOB statement - 指定作业 SPOOLing 所需的信息,例如作业 ID、执行优先级、作业完成后通知的用户 ID。

(2) // 语句* - 这是一个注释语句。

(3) EXEC statement - 指定要执行的 PROC/程序。在上面的示例中,正在执行一个 SORT 程序(即按特定顺序对输入数据进行排序)

(4) Input DD statement - 指定要传递给 (3) 中所述程序的输入类型。在上面的示例中,物理顺序 (PS) 文件作为共享模式中的输入传递 (DISP = SHR)。

(5) Output DD statement - 指定执行程序后要生成的输出类型。在上面的示例中,创建了 PS 文件。如果一条语句超过一行中的第 70 个位置,那么在下一行中继续该语句,下一行应以 “//” 加一个或多个空格开头。

(6) 还可以使用其他类型的 DD 语句来向程序指定其他信息(在上述示例中:在 SYSIN DD 语句中指定排序条件),并指定错误/执行日志(示例:SYSUDUMP/SYSPRINT)的目的地。DD 语句可以包含在数据集(大型机文件)中,也可以包含在流式数据中(在 JCL 中硬编码的信息),如上述示例所示。

(7) / * 标记流式数据结束。

除流式数据外,所有 JCL 语句均以 // 开头。JOB、EXEC 和 DD 关键字之前和之后至少要有一个空格,语句其余部分不应有任何空格。

JOB Parameter Types

每个 JCL 语句都附带一组参数,以帮助操作系统完成程序执行。参数可以分为两种类型:

Positional Parameters

  1. 出现在语句的预定义位置和顺序中。示例:记帐信息参数只能出现在 JOB 关键字之后,在程序员姓名参数和关键字参数之前。如果省略位置参数,必须用逗号代替。

  2. JOB 和 EXEC 语句中存在位置参数。在上面的示例中,PGM 是 EXEC 关键字后面编码的位置参数。

Keyword Parameters

  1. 它们在位置参数之后编码,但可以按任何顺序出现。如果不需要,可以省略关键字参数。通用语法是 KEYWORD=value。示例:MSGCLASS=X,即作业日志在作业完成后的输出 SPOOL 中重定向。

  2. 在上述示例中,CLASS、MSGCLASS 和 NOTIFY 是 JOB 语句的关键字参数。EXEC 语句中也可以有关键字参数。

这些参数将在后续章节中详细列出,并附有适当的示例。