收藏 分享(赏)

作业控制语言.doc

上传人:hwpkd79526 文档编号:7716485 上传时间:2019-05-24 格式:DOC 页数:22 大小:152.50KB
下载 相关 举报
作业控制语言.doc_第1页
第1页 / 共22页
作业控制语言.doc_第2页
第2页 / 共22页
作业控制语言.doc_第3页
第3页 / 共22页
作业控制语言.doc_第4页
第4页 / 共22页
作业控制语言.doc_第5页
第5页 / 共22页
点击查看更多>>
资源描述

1、作业控制语言31 基本概念在大型服务器系统中,当用户需要使用计算机完成某项任务时,用户必须准备一个作业流(Job Stream)。作业流中包含一个或多个作业(Job) 。作业是用户在完成该任务时要求计算机所做工作的集合。与 COBOL 等一般的编程语言不同,作业控制语言 JCL(Job Control Language)是用户与操作系统的接口。用户通过 JCL 的相应语句来与操作系统通讯,获得作业所需的资源等,按自己的意图来控制作业的执行。由几个语句组成,对于一个作业,JCL 为被执行的任务引导操作系统,并说明所需要的全部设备。在一个作业中,每一次程序的执行称为一个作业步,一个作业可包含几个作

2、业步。一般的,一个作业由以下相对独立的三步组成:(1) 编译:把源程序语句(源模块)转换成目标模块;(2) 链接 编辑:把目标模块同子程序 库中的其他程序链接起来得到可执行模块;(3) 执行:运行可执行模块得到结果。一个作业中的各步是顺序执行的,因此一个作业步的输出可以作为下一个作业步的输入。大型服务器系统中用户的作业可以由一个或多个作业步构成。只有一个作业步的作业叫做单步作业;由多个作业步构成的作业叫做多步作业。不论单步作业还是多步作业都必须包含三个 JCL 基本语句(JCL Statement) 。它们分别是:(1) 作 业语句(JOB):标识一个作 业的开始,提供必要的运行参数。(2)

3、执行 语句(EXEC):标识一个作 业步的开始,定义本作业步所要执行的程序或过程。(3) 数据定 义语句(DD):用于描述 应用程序所需要的数据文件。系统规定这三种语句行必须以“/”开头。下面是一个多步作业的例子:/JOB1 JOB /STEP1 EXEC /DD1 DD 作业步 1/STEP2 EXEC /INDD1 DD 作业步 2 /INDD2 DD /除了上述一些基本概念,有关数据结构和存取方法的概念在 JCL 的使用中也是非常重要的,由于这一部分已在本书的第二章中详细讨论过,就本章不再重复了。32 JCL 语句321 JCL 语句分类在大型服务器系统中,作业控制语言被分做两类:JES

4、2 和 JCL。 、作业控制语言由九种语句组成,除了上一节中讨论过的三种基本语句外,还有以下六种附加语句:(1)/* 语句:表示流内数据结束或调用 JES 控制语句;(2)/*语句:注释语句,由第 4 到第 80 列写出注释内容;(3)/语句:空语句,用以标记一个作业的结束;(4) PROC 语句:流内过程(IN-STREAM PROCEDURE)或编目过程(CATALOGED PROCEDURE)的起始标记。(5) PEND 语句:标志一个流内过程的结束。(6) Command 语句:操作员用这 个语句在输入流中写入操作命令。在这九种语句中,JOB、EXEC 和 DD 三种语句对于每个作业来

5、说都是必要的。下面给出一个单步作业的 JCL 实例。/BACKUP JOB ,EXAMPLE JOB/*/* IT IS A EXAMPLE! */*/STEP1 EXEC PGM=IEBGENER/STEPLIB DD DSN=SYS1.LINKLIB,DISP=SHR/SYSIN DD DUMMY /SYSPRINT DD SYSOUT=A/SYSU1 DD DSN=PR.MASTER,DISP=OLD/SYSU2 DD DSN=PR.MAILY.BACKUP,DISP=(NEW,CATLG),UNIT=TAPE,/ DCB=(RECFM=FB,LRECL=200,BLKSIZE=1000

6、)/在上述例子中,我们给出了一个名为 BACKUP 的单步作业,在这个作业中我们通过调用公用程序 IEBGENER 完成了将库 SYS1.LINKLIB 中的 PR.MASTER 数据集备份到磁带上的工作。通过该例我们可以初步了解 JCL中各语句的使用方式,下面我们将详细向大家介绍 JCL 的语法规则及语句的使用。322 JCL 的语法规则与其计算机语言一样,JCL 有一套严格的语法规则。但与我们熟知的一些编程语言不同的是,JCL 还有其严格的语句格式规范。用户只有严格按照这些规则来编写作业控制程序,系统才能按照其意图正确完成用户的作业,否则系统就会给出错误信息,或产生不可预知的后果。一、 J

7、CL 字符集(1) 字母(共 26 个)A B C D E F G H I J K L M N O P Q R S T U V W X Y Z(2) 数字(共 10 个)0 1 2 3 4 5 6 7 8 9(3) 特殊字符(共 10 个), . / ( ) * & + - =(4) 通配符(共 6 个) $ # (也可分别用 X7C X5B 和 X7B表示)(5) EBCDIC 可打印字符集(参见附录)使用十六进制值表示:X40 XFE在 JCL 语法中会用到一些特殊字符,其作用列表如下表 3.2.1:字符 语法功能, 分隔参数和子参数= 分隔关键字参数(见 3.2.2 节)与它的值,例:C

8、LASS=A(b ) 括起子参数列表或 PDS、PDSE 的成员名& 标志一个符号参数(symbolic parameter),例:&LIB& 标志一个临时数据集名(temporary data set name)例:&TEMPDS 标志一个流内或系统输出(sysout)数据集名,例:&PAYOUT. 分隔受限数据集(qualified data set)名字的各部分,例:A.B.C 分隔一些特定参数与子参数的各部分,例:nodename.userid* 提及一条先前的 语句,例:OUTPUT=*.name ,或在特定的语句内,标志特定的功能,例:/ddname DD * 括起含有特殊字符的参

9、数值(空格) 划分域表 3.2.1二、 一般语句格式规范在 JCL 中,除/*语句外的所有语句均以第一、二列的/符号作为开始标志,系统规定这些语句的长度为 80 列。这 80 列在逻辑上被划分为五个区域,分别是标识符区、名字区、操作符区、参数区和说明区,即:标识符区 名字区 操作符区 参数区 说明区/ 名字 操作符 参数 说明?标识符区一般情况下,标识符区的符号为“/” ,该符号表明该条语句为 JCL 语句。标识符区位于每条语句的第一、二列。在特殊情况下,标识符区的符号将有所变化。如 3.2.1 中所讨论过的“/*”语句和“/*语句,则分别在标识符区中使用的符号“/*”和“/*”表示。?名字区

10、名字区指明一个语句,便于系统控制块或其他语句引用它。名字可以由18 个字母数字或通配符组成,但第一个字符必须是字母或通配符,且必须从第三列开始。名字区后必须跟一个或多个空格,可以选择名字表达出这个 JCL语句的作用。下面给出几个正确与错误的名字区的例子:正确的 错误的/Z /9Z /BACKUP#1 /TAPEBACKUP/#99 /TEST*9 /$EXAM /EXAM(0)?操作符区操作符区位于名字区之后,规定了语句的类型:JOB、EXEC、DD、PROC、PEND,或操作员命令。名字区后必须跟一个或多个空格。例如:/EXAMPLE JOB/STEP1 EXEC/INDD1 DD?参数区参

11、数区在操作符区之后,其中包括被逗号分隔的参数,参数由事先规定好的关键字组成,对于这些参数其数值必须是可被代换的变值。参数区没有固定的长度及列的要求。例如:/EXAMPLE JOB 2000,CLASS=A/STEP1 EXEC PGM=IEYFORT/PRINT DD SYSOUT=A?说明区说明区位于参数区后,用于对相应语句进行注释说明,它可以是任何需要的说明信息,注释区后必须跟一空格。需要注意的是,仅当参数出现时才能书写说明信息,不然容易与参数混淆。下面是一个说明区的例子:/EXAMPLE JOB ,CLASS=A IT IS A COMMENTJCL 只允许在参数区和说明区有续行,当需要

12、续行时,在当前行的第 71列前必须将某个参数或某个子参数以及参数后的逗号写完整,且下一行第 1、2列为“/” ,第 3 列为空格,续行的内容只能从 416 列开始,如从 16 列后开始,将被认为是注释语句。下面是一个续行的例子:/DATA DD DSN=SYS1。FORTLIB,/ DISP=OLD三、 参数规则在 JCL 中,参数区内的参数的类型分为两类:(1) 位置参数(positional):与其他参数保持相对位置的参数;(2) 关键 字参数(keyword):由一个 关键字和等号后面的可变数据组成。如果在一个语句内既有位置参数又有关键字参数时,所有的关键字参数必须位于位置参数之后。例:

13、 /EXAMPLE JOB 2000,CLASS=A位置参数 关键字参数 一个位置参数或关键字参数中的可变数字,也可能是一个子参数表。该表中同样可能含有位置和关键字这两种类型的参数,它们同样遵循位置参数和关键字参数的所有规则。当参数有子参数时,子参数必须顺序排列在圆括号括内。例:/EXAMPLE JOB (2000,100,30),COND=(9,LT)在了解参数类型的概念后,我们总结出参数的书写规则如下:1位置参数和关键字参数之间必须用逗号分开,不允许有空格。值得注意的是,在 JCL 语句中错写空格,经常导致非常难以查出的错误。正确的 错误的/EXAMPLE JOB 2000,CLASS=A

14、 /EXAMPLE JOB 2000, CLASS=A /EXP JOB (2000,9),CLASS=A /EXP JOB (2000,9)CLASS=A2必须按规定的次序书写参数:所有的关键字参数必须位于位置参数之后,而所有位置参数也必须按规定排列。正确的 错误的/EXAMPLE JOB 2000,CLASS=A /EXAMPLE JOB CLASS=A,2000 3当缺省某个位置参数或某个子参数时,应以一个逗号指明所在位置。当缺省最后一个位置参数时,逗号可以省略。/EXP JOB (2000, ,9),CLASS=A/SYSTEM JOB ,SYSTEM,CLASS=S,MSGLEVEL

15、=(0,0)4 当没有任何位置参数时,则不必书写任何内容表示。/EXP JOB CLASS=A5关键字参数之间没有相对位置的规定,可以按任何次序排列。/EXP JOB 2000,CLASS=A,MSGLEVEL=1也可写作:/EXP JOB 2000, MSGLEVEL=1,CLASS=A6允许含有特殊字符的参数或子参数,且其中的特殊字符并非起某种特定的语法功能(见表 3.2.1)时,必须用撇号“ ”替代括号将这些参数和子参数括起来,例:ACCT=123+456 。而在这些参数与子参数中要用到撇号时,则需两个连续的撇号表示,例:ONEIL 需写作O NEIL。有些语句中的某些参数或子参数含有一

16、些特定的特殊字符时,将不需要用撇号括起来,详细的情况清参考表 3.2.2。在表 3.2.1 中我们可以知道,在 JCL 中用 “&”来表识符号参数的开始。当参数中含有“&”且不用来表示符号参数时,则需使用连续的两个“&”来表示“&” 。例:/S1 EXEC PGM=IEFBR14,ACCT=&ABC/DD1 DD DSN=&TEST,UNIT=SYSDA,SPACE=(TRK,(1,1)MVS 系统中,系统将视连续的两个“&”为一个字符。所以建议用户将含有“&”的参数用撇号括起来以避免出错。语句、参数或子参数 无需用撇号括起的特殊字符 例子JOB 语句中记账信息参数(accounting in

17、formation) 连字符“-” /JOBA JOB D58-D04JOB 语句中程序员名参数(programmers-name ) 连字符“-” 及 “.”(当“.”出现在字符前、字符间时无需撇号,但当其出现在字符串最后时则需用撇号) /JOBB JOB ,S-M-T/JOBC JOB ,.ABC/JOBD JOB ,P.D.S/JOBE JOB ,A.B.C.EXEC ACCT 连字符“-” 或 “+0” /S1 EXEC ACCT=D-L/S2 EXEC ACCT=D+0DD VOLUME=SER 连字符“-” VOLUME=SER=PUB-RDDD UNIT device-type

18、连字符“-” UNIT=3330-1DD DSNAME 连字符“-” DSNAME=A-B-C分隔数据集名的“.” DSNAME=A.B.C起语法功能的“&” (见表 3.2.1) DSNAME=&TEMPDSDSNAME=&PAYOUT“() ”,其作用为表示(括起):1 PDS 及 PDSE 的成员名 2 索引顺序数据集(indexed sequential data set)的域名(area name)3 PDS 及 PDSE的生成数据集(generation data set)的代号(generation number)4 生成数据集的代号 DSNAME=PDS1(MEMA)DSNAM

19、E=ISDS(PRIME)DSNAME=GDS(+1)标识生成数据集代号的加号“+”及减号“-” DSNAME=GDS(-2)表 3.2.27JCL 的位置参数与关键字参数最多只能由两级子参数。也就是说用于括起子参数列表的括号最多只能有两层。四、JCL 语句的位置在下面各界中我们将详细讨论各语句的书写方法,为了便于编写 JCL,下面按照 JCL 语句的放置顺序来说明它们的位置:1 JOB 语句。2 JOBLIB 语句。3 JOBCAT 及 SYSCHK 语句。4 任何流内过程。5 第一个 EXEC 语句6 任何的 STEPCAT、STEPLIB,或一般的属于这一步的 DD 语句。7 任何更多的

20、 EXEC 语句及与他们相关联的 DD 语句。8 任何空语句。四、 JCL 语法实例作业语句 /EXPJOB JOB ,USERNAME,MSGLEVEL=(1,1), EXAMPLE作业语句续行 / MSGCLASS=Q,CLASS=A/*注释语句 /* IT IS A EXAMPLE * /*执行语句 /STEP1 EXEC PGM=IEFBR14DD 语句 /DD1 DD DSN=MJSN.TEAM01.ONE,DISP=(,CATLG),DD 语句续行 / SPACE=(TRK,(5,2), UNIT=SYSDA DD 语句 / DD1 DD DSN=MJSN.TEAM01.TWO,D

21、ISP=(,KEEP),DD 语句续行 / SPACE=(TRK,(1,1), UNIT=SYSDA值得注意的是:在本例中,采取了两种注释说明的方式,一种为作业语句中的“EXAMLE” ,这是在说明区中说明的方式;另一种则是注释语句的方式。注释语句以第 13列的“/*”开始,可以将它放在 JOB 语句后的任何 JCL 语句的前面或后面来说明 JCL。323 JOB 语句JOB 语句标志一个作业的开始、分配作业名并设置相关的位置参数及关键字参数,每个作业的第一个语句必须是 JOB 语句。JOB 语句的格式如下:/作业名 JOB 位置参数,关键字参数,关键字参数。 。 。注释说明一、 作业名作业名

22、是用户给作业指定的名字。为使操作系统识别作业,必须选择确定的作业名字,由于系统不能同时运行具有相同名字得到作业,因此只能给作业一个唯一确定的名字。一般来说,建议用户采用“用户标识 USERID+数字或字符”的作业名,例如用户标识为 JACK,则作业名可用 JACKA。二、位置参数作业语句中的位置参数有两个:1 记账信息(accounting information):记账信息位于操作符“JOB”后,它用于提供用户使用系统的合法性、及时、纸张的收费管理等。其格式为:(account-number,accounting-information)account-number:用户账号;account

23、ing-information:附加的记账信息,如房间号、部门名等等。记账信息参数及其子参数最多不可超过 143 个字符(包括分隔子参数的逗号,但不包括括起子参数列表的括号) 。例:/EXAMPLE1 JOB (D548-8686,12/8/98,PGMBIN)/EXAMPLE2 JOB D548-86862 程序员名(programmers name)程序员名用于标识作业的所有者(owner)信息,包括特殊字符在内,其长度不得超过 20 个字符。例:/EXAMPLE1 JOB 2000,J.A.C.K/EXAMPLE2 JOB 2001,JACK/EXAMPLE3 JOB 2003,OSUN

24、下面是几个位置参数不同的书写格式的例子:带有全部位置参数的作业语句:/JOBA JOB (20008,60),A.B.C,CLASS=S,缺省记账信息的作业语句:/JOBB JOB ,USER-NAME,CLASS=A, 不带位置参数的作业语句:/JOBC JOB CLASS=Q,二、 关键字参数JOB 语句中的关键字参数有如下几个:1 ADDRSPC指明作业所需之存贮类型,它有两个子参数:VIRT 及 REAL。VIRT 表示作业请求虚拟页式存贮,而 REAL 表示作业请求实存空间。缺省值为 VIRT。其格式为:ADDRSPC=VIRTREAL例:/PEH JOB ,BAKER,ADDRSP

25、C=VIRT/DEB JOB ,ERIC,ADDRSPC=REAL,REGION=100K2 BYTES指明打印作业的系统输出数据集的最大千字节数,同时该参数还指出当超过所给出的最大字节数时,系统对作业的处理方式。这些方式包括:取消作业(转储(dump)或不转储)或继续作业并向操作员发出超过最大字节数的警告信息。其格式为:BYTE=nnnnn(nnnnnn,CANCEL)(nnnnnn,DUMP)(nnnnnn,WARNING)nnnnnn:指明打印输出的最大千字节数,例:nnnnnn 取值 500,则表示500,000 字节。nnnnnn 取值范围为:0 999999。CANCEL:当作业输

26、出字节数超过 nnnnnn 时,系统将不转储而直接取消该作业。DUMP:当作业输出字节数超过 nnnnnn 时,系统在取消该作业前将发出转储请求。WARNING:当作业输出字节数超过 nnnnnn 时,作业继续执行,系统将按照安装时规定的时间间隔不断向操作员发送警告信息。当 BYTE 参数或其子参数省略不写时,系统将采用安装时定义的默认值。例:/JOB1 JOB (123456),R F B,BYTES=(5000,CANCEL)/ JOB1 JOB (123456),R F B,BYTES=40除了 BYTES 参数外,JOB 语句中还有另三个参数可以限制作业输出的最大值,其格式及子参数的意

27、义也与 BYTES 类似,它们是:CARDS、LINES 及 PAGES。上述三个参数与 BYTES 不同之处在于子参数 nnnnnn 的单位不同,分别是:卡数、行数及页数,读者可以类推使用。3 CLASSCLASS 参数规定了作业的类别,JCL 中可选用的作业类别有 36 个,用字母 AZ及数字 09 表示。相同类别的作业处于同一输入队列等待执行(如图 3.2.1) ,并具有相同的处理属性。作业类别的属性定义在 JES 中。当 CLASS 参数缺省时,JES 将会根据安装时的缺省值赋予该作业一个缺省的 CLASS 值。格式:CLASS=jobclass/J1 JOB ,CLASS=A, /J

28、2 JOB ,CLASS=T图 3.2.14MSGCLASS用于为作业日志(job log)设置输出类别。作业日志是为程序员提供的与作业相关信息的记录。当该参数省略时,系统将会采用默认值。格式:MSGCLASS=classclass:定义作业日志的类别。与输入队列相似,class 是一个 AZ 的字母或一个 09 的数字。例:/EXMP1 JOB ,GEORGE,MSGCLASS=F5MSGLEVEL用于控制 JCL 作业输出清单的内容,用户可以要求系统打印出如下内容:?JCL 语句;?输入流中的所有控制语句,即:所有的 JCL 语句及 JES2 或 JES3 语句;?任何作业步调用的流内过程

29、和编目过程语句;?作业控制语句的信息;?JES(作业控制子系统 job entry subsystem)及操作员对作业的处理信息:设备和卷的分配、作业步及作业的执行和终止、数据集的处理等。格式:MSGLEVEL=(statements,messages)statements:指明在 JCL 作业输出清单中应打印出的作业控制语句的类型,取值范围为:0 2。取值 0:仅打印出作业的 JOB 语句;取值 1:打印出作业中包括过程语句在内的所有 JCL 语句;取值 2:输入流中的所有控制语句。messages:指明在 JCL 作业输出清单中应打印出信息的类型,取值范围为:0 1。取值 0:只有在作业异

30、常终止时,打印出有关 JCL、JES、操作员及 SMS的处理信息;取值 1:无论作业是否异常终止,都打印出有关 JCL、JES、操作员及SMS 的处理信息。例:/EXMP3 JOB ,MSGLEVEL=(2,1)/EXMP4 JOB ,MENTLE,MSGLEVEL=0/EXMP5 JOB ,MIKE,MSGLEVEL=(,0)6NOTIFY用于请求系统在后台作业处理完毕时给指定用户发送信息。如果作业完成时,该用户未在系统登录,则系统所发送的信息将会保留到此用户下次登录。格式:NOTIFY=useriduserid:必须以字母或通配符开头的 17 个字母、数字或通配符组成,其值必须是一个存在的

31、 TSO 用户标识。例:/SIGN JOB ,TLOMP,NOTIFY=TSOUSER 7PRTY 用于为相应的输入队列中的作业分配优先级。系统根据作业优先级的高低来选择来选择作业执行,对于同一级的作业的选择将采取“先进先出”的原则。格式:PRTY=prioritypriority:用数字量来表示优先级,数字越大表示优先级越高。根据作业进入子系统的类型,其取值范围是 JES2:015;JES3:014。例:/JOBA JOB 1,JIM WEBSTER,PRTY=128REGION用于指定作业所需的实存或虚存空间的大小,系统将在该作业中的每一作业步使用该值。所需空间大小必须包含以下内容:?运行

32、所有程序所需的空间?在运行期间,程序中宏指令 GETMAIN 所需的所有附加空间?任务初始化和终止时需要的自由空间如果 JOB 语句中的 REGION 参数省略不写的话,系统将采用每条 EXEC 语句中所定义的 REGION 参数,当 EXEC 语句中的 REGION 参数省略不写时,系统将采用安装缺省值。格式:REGION=valueK=valueM valueK:以千字节(Kb)为单位指出所需空间大小,value 可取 17 位的十进制数,其取值范围为 12096128。系统以每 4k 为一存储单位分配空间,所以 value 值应取 4 的倍数,如 REGION=68K。当 value 值

33、不是 4 的倍数时,系统会将其增至一最为接近的 4 的倍数的值。valueM:以兆字节(Mb)为单位指出所需空间大小,value 可取 14 位的十进制数,其取值范围为 12047注:REGION 值必须是有效的存储空间,如果取值为 0 或任何大于系统极限的值时都有可能会引起存储问题。当系统未定义极限值时,value 值不能超过 16384K 或 16M。例:/ACCT1 JOB A23,SMITH,REGION=100K,ADDRSPC=REAL/ACCT2 JOB 175,FRED,REGION=250K9TIME用于指定作业占用处理器的最长时间并可通过一些信息得知该作业占用处理器的时间。

34、当作业占用处理器时间超过指定值时,系统将终止该作业。通常情况下,此参数不用设置。当作业所需处理器时间长于系统缺省值时,或出于某种测试目的才设置此参数。格式:TIME=(minutes,seconds)=1440 =NOLIMIT =MAXIMUM minutes:指定作业可占用处理器最长时间的分钟数,取值范围为0357912(248.55 天) 。不可以将 TIME 参数写作 TIME=0,这样将导致不可预知的后果。Seconds:作为 minutes 的补充,定义指定作业可占用处理其最长时间的秒钟数,取值范围为 059。NOLIMIT:表明作业的运行无时间限制,等同于 TIME=1440。1

35、440:表明表明作业的运行无时间限制,即 24 小时。MAXIMUM:表示作业的运行时间为 357912 分钟。当 JOB 语句中的 TIME 参数没有指明时,每作业步的运行时间限制由以下值决定:?在 EXEC 语句中 TIME 参数的值。?当 EXE 语句中没有设置 TIME 参数时,采用默认的时间限制值(也就是JES 默认作业步时间限制值) 。例 1:/STD1 JOB ACCT271,TIME=(12,10)例 2:/STD2 JOB ,GOR,TIME=(,30)例 3:/FIRST JOB ,SMITH,TIME=2/STEP1 EXEC PGM=READER,TIME=1?/STE

36、P2 EXEC PGM=WRITER,TIME=1?在上例中,JOB 语句中规定了 2 分钟的作业运行时间限制,每个作业步允许 1 分钟,如果任何一个作业步的执行时间超过 1 分钟,作业将会异常终止。例 4:/SECOND JOB ,JONES,TIME=3/STEP1 EXEC PGM=ADDER,TIME=2?/STEP2 EXEC PGM=PRINT,TIME=2?上例中,JOB 语句中规定了 3 分钟的作业运行时间限制,每个作业步允许 2 分钟,如果任何一个作业步的执行时间超过 2 分钟,作业将会异常终止。但两个作业步的总共运行时间不得超过作业运行时间限制?3 分钟,也即:如果作业步

37、1 的运行时间为 1.56 分钟,则作业步 2 的运行时间不得超过 1.44 分,否则作业也会异常终止。10TYPRUN用于请求特殊的作业处理。TYPRUN 可以告知系统如下要求:?在 JES2 中,将输入作业流直接拷贝到系统输出数据集并对其进行输出处理。?在 JES2 或 JES3 中,挂起一个作业,直至某特定事件发生。当该特定事件发生时,操作员根据用户的要求释放该作业,并允许系统选择该作业执行。使用 JES2 中的/*MASSAGE 语句或 JES3 中的/*OPERATOR 语句通知操作员释放该作业。?在 JES2 或 JES3 中,对作业的 JCL 进行语法检查。值得注意的是:不能对已

38、经开始的任务(task)设置该参数,否则该作业将会出错。格式:TYPRUN=COPY HOLD JCLHOLD SCAN 子参数说明:COPY(仅支持 JES2): 请求 JES2 将输入作业流直接拷贝到系统输出数据集并对其进行输出处理。系统并不执行该作业。系统输出数据集的类别与该作业 JOB 语句中 MSGCLASS 参数定义的信息类别(massage class)相同 。HOLD:请求系统在执行作业之前将其挂起,等待某特定事件发生后,请求操作员将其释放。如果在作业的输入过程中出现错误,JES 将不会挂起该作业。JCLHOLD(仅支持 JES2):请求 JES2 在 JCL 执行前将其挂起,

39、直到操作员将其释放。SCAN:请求系统只对作业的 JCL 进行语法检查,不执行也不为其分配设备。例:/UPDTAE JOB ,HUBBARD/STEP1 EXEC PGM=LIBUTIL?/LIST JOB ,HUBBARD,TYPRUN=HOLD/STEPA EXEC PGM=LIBLIST?上例中,作业 UPDATE 与 LIST 在同一个作业流中被提交执行。作业UPDATE 的功能是在库中增加一个成员再删除一个成员;作业 LIST 则列出该库的成员目录。显然,LIST 应在 UPDATE 之后在执行。作业 LIST 的 JOB 语句中设置的 TYPRUN=HOLD 使得保证了这一执行顺序

40、。如果输入流中或操作员已执行了 MONITOR JOBNAMES 的命令,当 UPDATE 执行完后,系统会通知控制台操作员。操作员释放作业后,系统可以选择该作业执行。11其他参数在 JCL 的 JOB 语句中的关键字参数还有:COND、GROUP、PASSWORD、PERFORM、RD、RESTART、SECLABEL、USER,由于本书篇幅有限,在这里就不再一一介绍了,详细的使用方法读者可以参考MVS JCL Reference一书。324 EXEC 语句EXEC 语句标明作业或过程中的每一作业步的开始,并告知系统如何执行该作业步。包括所有在 EXEC 语句中调用的过程中的所有作业步在内,

41、一个作业最多可以有 255 个作业步。EXEC 语句格式如下:/作业步名 EXEC 位置参数,关键字参数符号参数=值 注释一、作业步名作业步名是可以省略不写的,如需标明作业名时,该作业名必须在该作业内以及该作业调用的所有过程中是唯一的,它由 18 个字母或通配符开头的字符数字构成。二、位置参数EXEC 语句中的位置参数有两个:PGM 和 PROC。每条 EXEC 语句必须有且仅有一个位置参数或过程名。1 PGMPGM 参数用于指明所要执行的程序名。该程序必须是一个分区数据集(PDS)的成员或用作系统库(system library) 、私有库(private library)及临时库(temp

42、orary library)的扩充分区数据集(PDSE)的成员。程序名的调用方法分为直接调用和间接调用。格式:PGM=program-name*.stepname.ddname*.stepname.procstepname.ddnameprogram-name:program-name(程序名)指明要执行程序的成员名或别名。程序名由由 18 个字母或通配符开头的字符数字构成。*.stepname.ddname:表示要执行的程序名由本作业步前名为“stepname”的作业步内名为“ddname”的 DD 语句的 DSN 参数决定。*.stepname.procstepname.ddname:表示

43、要执行的程序名由本作业步前名为“stepname”的作业步里所调用过程内名为“procstepname”的过程步中相应名为“ddname”DD 语句的 DSN 参数决定。在上述三种程序调用方法中,第一种为直接调用,而后两种为间接调用。间接调用采用向后参考的方法,这里的“后”指在本作业步读入之前,已先读入系统的本作业其它 JCL 语句。当需调用的程序在系统库(如 SYS1.LINKLIB)或私有库(由作业中的 JOBLIB DD 语句或本作业步中的 STEPLIB DD 定义)中时使用第一种调用方法;而当需调用的程序在本作业步前的某一作业步创建的临时库中时采用后两种调用方法。例:/JOBC JO

44、B ,JOHN,MSGCLASS=H/STEP2 EXEC PGM=UPDT/DDA DD DSNAME=SYS1.LINKLIB(P40),DISP=OLD/STEP3 EXEC PGM=*.STEP2.DDA在上例中,名为 STEP3 的 EXEC 语句采用程序间接调用方式,所调用的程序名由作业步 STEP2 中的名为 DDA 的 DD 语句决定,在该 DD 语句中定义了系统库 SYS1.LINKLIB,程序 P40 是该库的一个成员。 “P40”即 STEP3 中要调用执行的程序名。 2 PROC指明作业步所要运行的过程名。格式:PROC=procedure-nameprocedure-

45、name procedure-name:需要调用的过程名,过程名由 18 个字母或通配符开头的字符数字构成。所调用的过程名可以是:?编目过程的成员名或别名。?由 PROC 语句定义的流内过程的过程名,该流内过程必须在本作业内且本作业步前定义。在设定该参数时,可直接写出过程名。例:/SP EXEC PROC=PAYWRKS/BK EXEC OPERATE三、 关键字参数EXEC 语句的关键字参数是可选的,这些参数制作用于本作业步。当 EXEC 语句的位置参数指定程序名时,关键字参数的写法同 JOB 语句;当 EXEC 语句的位置参数指定编目或流内过程时,EXEC 语句的关键字参数将覆盖所调用过程

46、中各EXEC 语句的关键字参数。因此如果想仅覆盖过程中的某个 EXEC 语句的关键字参数,则应在设置关键字参数时,同时指出所调用过程的相关过程步的名字。书写形式如下:关键字参数.过程步名=值下面将分别介绍 EXEC 语句中常用的关键字参数:1 ACCT指明作业步所需的一个或多个记账信息子参数。记账信息参子参数最多不可超过 142 个字符(包括分隔子参数的逗号,但不包括括起子参数列表的括号) 。格式:ACCT.过程步名=(记账信息)例:/STP3 EXEC PROC=LOOKUP,ACCT=(/83468)2ADDRSPC指明作业步所需之存贮类型,它有两个子参数:VIRT 及 REAL。VIRT 表示作业步请求虚拟页式存贮,而 REAL 表示作业步请求实存空间,不能进行页式处理。缺省值为 VIRT。EXEC 语句中的 ADDRSPC 参数仅在本作业步中起作用,JOB 语句中的 ADDRSPC 参数会覆盖该作业中的所有 EXEC 语句中的 ADDRSPC 参数。格式:ADDRSPC.过程步名=VIRTREAL例:/CAC1 EXEC PGM=A,ADDRSPC=VIRT/CAC2 EXEC PROC=B,ADDRSPC=REAL

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报