环境

优质
小牛编辑
125浏览
2023-12-01

在Windows/Linux上安装JCL

有许多可用于Windows的免费主机仿真器,可用于编写和学习示例JCL。

一个这样的模拟器是Hercules,它可以通过以下几个简单的步骤轻松安装在Windows中:

  • 下载并安装Hercules仿真器,可从Hercules的主页获得: www.hercules-390.eu

  • 有关编写和执行JCL的各种命令的完整指南,请访问URL www.jaymoseley.com/hercules/installmvs/instmvs2.htm

除了最新的64位z/Architecture之外,Hercules还是大型机System/370和ESA/390架构的开源软件实现。 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          <b>(1)</b>
//*                                                        <b>(2)</b>
//STEP010  EXEC PGM=SORT                                   <b>(3)</b> 
//SORTIN   DD DSN=JCL.SAMPLE.INPUT,DISP=SHR                <b>(4)</b>
//SORTOUT  DD DSN=JCL.SAMPLE.OUTPUT,                       <b>(5)</b>
//         DISP=(NEW,CATLG,CATLG),DATACLAS=DSIZE50                
//SYSOUT   DD SYSOUT=*                                     <b>(6)</b> 
//SYSUDUMP DD SYSOUT=C                                     <b>(6)</b> 
//SYSPRINT DD SYSOUT=*                                     <b>(6)</b> 
//SYSIN    DD *                                            <b>(6)</b> 
  SORT FIELDS=COPY                                    
  INCLUDE COND=(28,3,CH,EQ,C'XXX')                                    
/*                                                         <b>(7)</b>  

程序说明

编号的JCL陈述已在下面解释:

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

(2) //* statement - 这是一条评论声明。

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

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

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

(6)可以有其他类型的DD语句来为程序指定附加信息(在上面的示例中:SORT条件在SYSIN DD语句中指定)并指定错误/执行日志的目标(例如:SYSUDUMP/SYSPRINT)。 DD语句可以包含在数据集(大型机文件)中,也可以包含在流数据中(在JCL中硬编码的信息),如上例所示。

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

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

JOB参数类型

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

位置参数

  • 出现在语句中的预定义位置和顺序。 示例:会计信息参数只能在JOB关键字之后和程序员名称参数和关键字参数之前出现。 如果省略位置参数,则必须用逗号替换它。

  • 位置参数存在于JOB和EXEC语句中。 在上面的例子中,PGM是在EXEC关键字之后编码的位置参数。

关键字参数

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

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

这些参数已在后续章节中详细说明,并附有适当的示例。