📅  最后修改于: 2020-11-22 17:00:49             🧑  作者: Mango
有许多可用于Windows的免费大型机模拟器,可用于编写和学习示例JCL。
其中一种仿真器是Hercules,可以通过以下几个简单的步骤将其轻松安装在Windows中:
下载并安装Hercules模拟器,该模拟器可从Hercules的主页-: www.hercules-390.eu上获得。
可以在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下运行。
用户可以通过多种方式连接到大型机服务器,例如瘦客户端,虚拟终端,虚拟客户端系统(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语句-指定对作业进行任务存储所需的信息,例如作业ID,执行优先级,在作业完成时要通知的用户ID。
(2)// *语句-这是一个注释语句。
(3)EXEC语句-指定要执行的PROC /程序。在上面的示例中,正在执行SORT程序(即,按特定顺序对输入数据进行排序)
(4)输入DD语句-指定要传递给(3)中提到的程序的输入类型。在上面的示例中,物理顺序(PS)文件作为共享模式下的输入传递(DISP = SHR)。
(5)输出DD语句-指定程序在执行时将产生的输出类型。在上面的示例中,创建了一个PS文件。如果语句超出一行的第70位,则在下一行继续,该语句应以“ //”开头,后跟一个或多个空格。
(6)可以使用其他类型的DD语句为程序指定其他信息(在上面的示例中:在SYSIN DD语句中指定了SORT条件)并指定了错误/执行日志的目的地(示例: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语句中也可以有关键字参数。
这些参数以及相应的示例已在后续章节中进行了详细介绍。