JCL 学习手册

上传人:小*** 文档编号:242970073 上传时间:2024-09-13 格式:PPT 页数:41 大小:317KB
返回 下载 相关 举报
JCL 学习手册_第1页
第1页 / 共41页
JCL 学习手册_第2页
第2页 / 共41页
JCL 学习手册_第3页
第3页 / 共41页
点击查看更多>>
资源描述
,Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,作业控制语言,JCL,(Job Control Language),作业控制语言,JCL,必须包含三个,JCL,基本语句,:,(1)作业语句(,JOB):,标识一个作业的开始,提供必要的运行参数。,(2)执行语句(,EXEC):,标识一个作业步的开始,定义本作业步所要执行的程序或过程。,(3)数据定义语句(,DD):,用于描述应用程序所需要的数据文件。,作业控制语言,JCL,系统规定这三种语句行必须以,“,/,”,开头。下面是一个多步作业的例子:,/,JOB1 JOB ,/STEP1 EXEC ,/DD1 DD ,作业步1,/,STEP2 EXEC ,/INDD1 DD ,作业步2,/,INDD2 DD ,/,作业控制语言,JCL,六种附加语句:,1)/* 语句:表示六内数据结束或调用,JES,控制语句;,2)/*语句:注释语句,由第4到第80列写出注释内容;,3)/语句:空语句,用以标记一个作业的结束;,4),PROC,语句:流内过程(,IN-STREAM PROCEDURE),或编目过程(,CATALOGED PROCEDURE),的起始标记。,5),PEND,语句:标志一个流内过程的结束。,6),Command,语句:操作员用这个语句在输入流中写入操作命令。,作业控制语言,JCL,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),/,作业控制语言,JCL,JCL,的语法规则:,一、,JCL,字符集,(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,可打印字符集,作业控制语言,JCL,一般语句格式规范,:,分别是标识符区、名字区、操作符区、参数区和说明区.,名字区,后必须跟一个或多个空格,可以选择名字表达出这个,JCL,语句的作用。下面给出几个正确与错误的名字区的例子:,正确的 错误的,/,Z /9Z,/BACKUP#1 /TAPEBACKUP,/#99 /TEST*9,/$EXAM /EXAM(0),作业控制语言,JCL,操作符区,位于名字区之后,规定了语句的类型:,JOB、EXEC、DD、PROC、PEND,,或操作员命令。,名字区后必须跟一个或多个空格。例如:,/,EXAMPLE JOB,/STEP1 EXEC,/INDD1 DD,作业控制语言,JCL,参数区,在操作符区之后,其中包括被逗号分隔的参数,参数由事先规定好的关键字组成,对于这些参数其数值必须是可被代换的变值。参数区没有固定的长度及列的要求。例如:,/,EXAMPLE JOB 2000,,,CLASS=A,/STEP1 EXEC PGM=IEYFORT,/PRINT DD SYSOUT=A,作业控制语言,JCL,说明区,位于参数区后,用于对相应语句进行注释说明,它可以是任何需要的说明信息,注释区后必须跟一空格。需要注意的是,仅当参数出现时才能书写说明信息,不然容易与参数混淆。,/EXAMPLE JOB,,,CLASS=A IT IS A COMMENT,作业控制语言,JCL,JCL,只允许在参数区和说明区有续行,,当需要续行时,在当前行的第,71,列前必须将某个参数或某个子参数以及参数后的逗号写完整,且下一行第,1,、,2,列为,“/”,,第,3,列为空格,续行的内容只能从,416,列开始,如从,16,列后开始,将被认为是注释语句。,/DATA DD DSN=SYS1,。,FORTLIB,,,/ DISP=OLD,作业控制语言,JCL,参数规则,在,JCL,中,参数区内的参数的类型分为两类:,(1),位置参数(,positional,):,与其他参数保持相对位置的参数;,(2),关键字参数(,keyword,):,由一个关键字和等号后面的可变数据组成。,如果在一个语句内既有位置参数又有关键字参数时,所有的关键字参数必须位于位置参数之后。例:,/,EXAMPLE JOB,2000,CLASS=A,位置参数,关键字参数,作业控制语言,JCL,JCL,语法实例,作业语句,/,EXPJOB JOB ,USERNAME,MSGLEVEL=(1,1), EXAMPLE,作业语句续行,/,MSGCLASS=Q,CLASS=A,/*,注释语句,/*,IT IS A EXAMPLE *,/*,执行语句,/,STEP1 EXEC PGM=IEFBR14,DD,语句,/,DD1 DD DSN=MJSN.TEAM01.ONE,DISP=(,CATLG),DD,语句续行,/,SPACE=(TRK,(5,2), UNIT=SYSDA,DD,语句,/,DD1 DD DSN=MJSN.TEAM01.TWO,DISP=(,KEEP),DD,语句续行,/,SPACE=(TRK,(1,1), UNIT=SYSDA,作业控制语言,JCL,JOB,语句,JOB,语句标志一个作业的开始、分配作业名并设置相关的位置参数及关键字参数,每个作业的第一个语句必须是,JOB,语句。,JOB,语句的格式如下:,/,作业名,JOB,位置参数,,关键字参数,,关键字参数,。,注释说明,作业控制语言,JCL,JOB,语句中的关键字参数有如下几个:,1ADDRSPC,作业所需之存贮类型,2.,BYTES,打印作业的系统输出数据集的最大千字节数,3. CLASS,参数规定了作业的类别 用字母,AZ,及数字,09,表示,4,MSGCLASS,用于为作业日志(,job log,),设置输出类别。,/,EXMP1 JOB ,GEORGE,MSGCLASS=F,5,MSGLEVEL,用于控制,JCL,作业输出清单的内容,6,NOTIFY,用于请求系统在后台作业处理完毕时给指定用户发送信息。,作业控制语言,JCL,7,PRTY,用于为相应的输入队列中的作业分配优先级。,8,REGION,用于指定作业所需的实存或虚存空间的大小,系统将在该作业中的每一作业步使用该值。,9,TIME,用于指定作业占用处理器的最长时间并可通过一些信息得知该作业占用处理器的时间。,10,TYPRUN,用于请求特殊的作业处理。,COND、GROUP、PASSWORD、PERFORM、RD、RESTART、SECLABEL、USER,作业控制语言,JCL,EXEC,语句,EXEC,语句标明作业或过程中的每一作业步的开始,并告知系统如何执行该作业步。,EXEC,语句格式如下:,/,作业步名,EXEC,位置参数,关键字参数,符号参数,=,值, ,注释,EXEC,语句中的位置参数有两个:,PGM,和,PROC,。,每条,EXEC,语句必须有且仅有一个位置参数或过程名.,作业控制语言,JCL,格式:,PGM=program-name,*.stepname.ddname,*.stepname.procstepname.ddname,作业控制语言,JCL,例:,/,JOBC JOB ,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,中要调用执行的程序名.,作业控制语言,JCL,PROC,指明作业步所要运行的过程名。,格式:,PROC=procedure-name,procedure-name ,procedure-name,:,需要调用的过程名,过程名由,18,个字母或通配符开头的字符数字构成。所调用的过程名可以是:,编目过程的成员名或别名。,由,PROC,语句定义的流内过程的过程名,该流内过程必须在本作业内且本作业步前定义。,在设定该参数时,可直接写出过程名。,例:,/,SP EXEC PROC=PAYWRKS,/BK EXEC OPERATE,作业控制语言,JCL,EXEC,语句的关键字参数,关键字参数,.,过程步名,=,值,1ACCT,作业步所需的一个或多个记账信息子参数,ACCT.,过程步名=(记账信息),例: /,STP3 EXEC PROC=LOOKUP,ACCT=(/83468),2ADDRSPC,作业步所需之存贮类型,它有两个子参数:,VIRT,及,REAL,例:,/,CAC1 EXEC PGM=A,ADDRSPC=VIRT,/CAC2 EXEC PROC=B,ADDRSPC=REAL,REGION=100K,作业控制语言,JCL,REGION,作业步所需的实存或虚存空间的大小,系统仅在本作业步中使用该值。,REGION.,过程步名,=,valueK,=valueM,例:,/,MKBOYLE EXEC PROC=A,REGION=100K,ADDRSPC=REAL,/STEP6 EXEC PGM=CONT,REGION=250K,作业控制语言,JCL,TIME,用于指定作业步占用处理器的最长时间,并可通过作业输出清单得知该作业步占用处理器的时间,TIME.,过程步名,=(,minutes,seconds),=1440 ,=NOLIMIT ,=MAXIMUM ,值得注意的是:在,JOB,语句中不可设置,TIME=0,,,而在,EXEC,语句中则可以设置,TIME=0,,,当,TIME=0,时表示本作业步的执行时间由前面作业步的剩余执行时间决定。,作业控制语言,JCL,例,1,:,/,STP1 EXEC PGM=ACCT,TIME=(12,10),例,2,:,/,STP2 EXEC PGM=PAY,TIME=(,30),例,3,:,/,FIRST JOB ,SMITH MSGLEVEL=(1,1),/STEP1 EXEC PGM=READER,TIME=1,/STEP2 EXEC PGM=WRITER,在上例中,,STEP1,规定了,1,分钟的执行时间,,STEP2,的运行时间将由,STEP1,决定,也即,STEP2,的执行时间为:(,1,分钟,STEP2,实际运行时间)。,作业控制语言,JCL,COND,用于对先前作业步执行的返回码(,return code,),进行测试,以决定是否执行本作业步。,格式:,(,1,),COND.,过程步名,=(,code,operator),(,2,),COND.,过程步名,=(,code,operator,作业步名,过程步名,),(,code,operator,作业步名,过程步名,),EVEN),ONLY,(,3,),COND=EVEN,COND=ONLY,/,STEP6 EXEC PGM=DISKUTIL,COND=(4,GT,STEP3),在本例中如果,STEP3,的返回码小于,4,,系统将不执行,STEP6,。,由于没有设置,EVEN,或,ONLY,,,如果先前的作业步异常终止,系统将不会执行本作业步。,/,TEST2 EXEC PGM=DUMPINT,COND=(16,GE),(90,LE,STEP1),ONLY),由于设置了,ONLY,子参数,系统只在以下两种情况满足时执行本作业步:,(1)先前作业步异常终止;,(2)返回值的测试条件都不满足。,那么对于本例来说,系统将会在以下三种情况都满足的情况下执行本作业步:,一个先前作业步异常终止。,所有先前作业步的返回码大于等于,17,。,STEP1,的返回码小于等于,89,。,作业控制语言,JCL,/,STEP1 EXEC PGM=CINDY,/STEP2 EXEC PGM=NEXT,COND=(4,EQ,STEP1),/STEP3 EXEC PGM=LAST ,COND=(8,LT,STEP1),(8,GT,STEP2),在本例中,如果,STEP1,的返回码为,4,,,STEP2,将不被执行。在,STEP3,执行前,系统将执行第一个返回码测试。而由于,STEP2,并未被执行,所以将不会进行第二个返回码的测试。由于,8,大于,4,所以,STEP3,被执行。,/,STP4 EXEC PROC=BILLING,COND.PAID=(20,LT),EVEN),/ COND.LATE=(60,GT,FIND),/ COND.BILL=(20,GE),(30,LT,CHGE),在本例中的,EXEC,语句调用了一个名叫,BILLING,的过程。这条语句中定义了几个不同的分别对过程步,PAID,、,LATE,、,BILL,的返回码的测试。由于设置了,EVEN,子参数,除非相应的返回值测试满足条件,那么即使先前作业步异常终止,过程步,PAID,都将被执行。,作业控制语言,JCL,作业控制语言,JCL,PARM,用于向本作业步执行的程序传递变量信息。该程序必须有相应的指令接收这些信息,并使用它们。,格式:,PARM.,过程步名,=,子参数,PARM.,过程步名,=(,子参数,子参数,),PARM.,过程步名,=(,子参数,子参数,),PARM.,过程步名,=,子参数,子参数,括所有的逗号、撇号以及括号在内,所有子参数的总长度不得超过,100,个字符。当某子参数中含有特殊字符或空格时,可以将该子参数用撇号括起来,在其它子参数一起用括号括起来,或将所有在参数用撇号括起来。,子参数,:包含传递给程序的变量信息。,作业控制语言,JCL,例,1,/,RUN3 EXEC PGM=APG22,PARM=P1,123,P2=5,在本例中,系统将参数,P1,、,123,及,P2=5,传递给程序,APG22,。,例,2,/,STP6 EXEC PROC=ASFCLG,PARM.LKED=(MAP,LET),在本例中系统将,MAP,、,LET,传递到过程,ASFCLG,中名为,LKED,的过程步。,作业控制语言,JCL,DD,语句,数据定义语句(,DD,语句)用于定义一个数据集以及该数据集所需的输入输出资源。,格式:,/,dd,名,DD ,位置参数,关键字参数, ,注释,过程步名,.,dd,名,/,dd,名,DD,过程步名,.,dd,名,dd,名,“,dd,名,”,是为,DD,语句定义的名字,它由,18,个字母或通配符开头的字符数字构成。在一个作业步内可以有多个,DD,语句,但每个,DD,语句的,dd,名在本作业步中应该是唯一确定的。,“,dd,名,”,可以由系统定义也可以由用户自己定义,当用户需要调用公用程序时,需根据公用程序的具体要求选用系统定义的,“,dd,名,”,。,用户自定义的,“,dd,名,”,不可与系统定义,“,dd,名,”,相重复。,系统定义,“,dd,”,名有如下几个,:,JOBCAT SYSCHK,JOBLIB SYSCKEOV,STEPCAT SYSIN,STEPLIB SYSMDUMP,SYSBEND SYSDUMP,JES2,子系统中:,JESJCLIN JESMSGLG,JESJCL JESYSMSG,JES3,子系统中:,JCBIN JESJCL JS3CATLG,JCBLOCK JESMSGLG J3JBINFO,JCBTAB JOURNAL J3SCINFO,JESJCLIN JOURNAL J3STINFO,JESInnnn JESYSMSG STCINRD,TSOINRDR,作业控制语言,JCL,参数,DD,语句的参数也分为位置参数及关键字参数,这些参数都是可选的。每个,DD,语句只能有一个位置参数,但根据需要可以有个关键字参数。位置参数有,“,*,”,、,“,DATA,”,和,“,DUMMY,”,。,作业控制语言,JCL,参数,“,*,”,参数,“,*,”,用于开始一个流内数据集。数据记录跟在,“,DD,”,语句之后,其第一、二列不能是,“,/,”,或,“,/,*,”,;该记录可以是任何编码,如,EDCBIC,。,下列符号表明流内数据记录的结束:,输入流中的,“,/*,”,。,表示另一个,JCL,语句开始的,“,/,”,。,当数据记录中需以,“,/,”,开始时,就必须使用,DATA,参数来代替,“,*,”,参数。,格式:,/,dd,名,DD *,参数, ,注释,例,1,/,INPUT1 DD *,data,/INPUT2 DD *,data,/*,例,2,/,INPUT3 DD *,,,DSNAME=&INP3,data,/*,作业控制语言,JCL,例,3,/,STEP2 EXEC PROC=FRESH,/SETUP.WORK DD UNIT=3400-6,LABEL=(,NSL),/,SETUP.INPUT1 DD *,data,/*,/PRINT.FRM DD UNIT=180,/PRINT.INP DD *,data,/*,例,3,在输入流中定义了两组数据。,DD,语句,“,SETUP.INPUT1,”,定义的输入数据将被编目过程中名为,“,SETUP,”,的过程步使用。而,DD,语句,“,PRINT.INP,”,定义的输入数据将被编目过程中名为,“,PRINT,”,的过程步使用。,作业控制语言,JCL,作业控制语言,JCL,DATA,用作一个流内数据集的开始,该流内数据集里含有以,“,/,”,开头的语句。数据记录紧跟在,“,DD DATA,”,语句之后;该数据记录可以是,BCD,或,EDCBIC,编码。数据记录将以,“,/*,”,作为结束。,格式:,/,/,dd,名,DD DATA,参数, ,注释,例,1.,/,GROUP1 DD DATA,data,/GROUP2 DD DATA,data,/*,例,2,/,GROUP3 DD DATA,DSNAME=&GRP3,data,/*,作业控制语言,JCL,例,3,/,STEP2 EXEC PROC=UPDATE,/PREP.DD4 DD DSNAME=A.B.C,UNIT=3350,VOLUME=SER=D88230,/ SPACE=(TRK,(10,5),DISP=(,CATLG,DELETE),/,PREP.IN1 DD DATA,data,/*,/ADD.IN2 DD *,data,/*,作业控制语言,JCL,作业控制语言,JCL,DUMMY,DUMMY,参数用于标明:,(1)没有设备或外存空间分配给该数据集。,(2),对该数据集不进行状态处理。,(3) 对,BASM,或,QSAM,来说,不对该数据集作输入输出操作。,用户使用,DUMMY,参数对程序进行测试。当测试完成时,如果用户希望恢复对数据集的输入输出操作时,只需将,DD DUMMY,参数替换成完整的数据集定义,DD,语句。,作业控制语言,JCL,格式:,/,dd,名,DD DUMMY,参数,所有在,DUMMY,语句中的参数必须在语法上是正确的。系统将对他们进行语法检查。,例,1,/,OUTDD1 DD DUMMY,DSNAME=X.X.Z,UNIT=3380,/ SPACE=(TRK,(10,2),DISP=(,CATLG).,本例中,DD,语句,“,OUTDD1,”,定义了一个空数据集。该语句中除,DUMMY,以外的参数将接受系统语法检查但并不起作用.,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!