收藏 分销(赏)

JCL作业控制语言.ppt

上传人:w****g 文档编号:7866649 上传时间:2025-01-23 格式:PPT 页数:88 大小:3.07MB 下载积分:16 金币
下载 相关 举报
JCL作业控制语言.ppt_第1页
第1页 / 共88页
JCL作业控制语言.ppt_第2页
第2页 / 共88页


点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第四章 作业控制语言,内容提要,基本概念,JCL,语句,DD,语句的关键字参数,特殊的,DD,语句,过程,实用程序,基本概念,作业,作业(,JOB,)是用户在完成该任务时要求计算机所做工作的集合,基本概念,作业与作业流,在大型主机系统中,当用户需要使用计算机完成某项批处理任务时,用户必须准备一个作业流,(Job Stream),作业流中包含一个或多个作业(,Job,),基本概念,作业控制语言,JCL,与,COBOL,等一般的编程语言不同,作业控制语言,JCL,(,Job Control Language,)是批处理作业的用户与操作系统的接口,作业控制语言便是提供给用户,为实现所需作业控制功能委托系统代为控制的一种语言,用户通过,JCL,的相应语句来与操作系统通讯,获得作业所需的资源等,按自己的意图来控制作业的执行,基本概念,作业步,一个作业中,每一段程序的执行称为一个作业步,一个作业可包含一个或多个作业步。一般的,作业由以下相对独立的三步组成:,编译:把源程序语句(源模块)转换成目标模块,链接编辑:把目标模块同子程序库中的其他程序链接起来得到可执行模块,执行:运行可执行模块得到结果,一个作业中的各个作业步是顺序执行的,因此一个作业步的输出可以作为下一个作业步的输入,用户的作业可以由一个或多个作业步构成,基本概念,单步作业与多步作业,只有一个作业步的作业叫做单步作业;由多个作业步构成的作业叫做多步作业。不论单步作业还是多步作业都必须包含三个,JCL,基本语句(,JCL Statement,):,作业语句(,JOB,):标识一个作业的开始,提供必要的运行参数,执行语句(,EXEC,):标识一个作业步的开始,定义本作业步所要执行的程序或过程,数据定义语句(,DD,):用于描述应用程序所需要的数据文件,JCL,语句,JCL,语句的分类,作业控制语言,JCL,由九种语句组成,除了前面介绍的三种外,其余六种是:,/*,语句:表示流内数据结束或调用,JES,控制语句,/*,语句:注释语句,由第,4,到第,80,列写出注释内容,/,语句:空语句,用以标记一个作业的结束,PROC,语句:流内过程(,IN-STREAM PROCEDURE,)或编目过程(,CATALOGED PROCEDURE,)的起始标记,PEND,语句:标志一个流内过程的结束。,Command,语句:操作员用这个语句在输入流中写入操作命令,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,字符集,字母(共,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,数字(共,10,个),0 1 2 3 4 5 6 7 8 9,特殊字符(共,10,个),./,()*&+-=,通配符,$#,(也可分别用,X,7C,X,5B,和,X,7B,表示),EBCDIC,可打印字符集,JCL,的语法规则,一般语句格式规范,在,JCL,中,除,/*,语句外的所有语句均以第,1,、,2,列的,/,符号作为开始标志,系统规定这些语句的长度为,80,列。这,80,列在逻辑上被划分为五个区域,分别是:,标识符区,名字区,操作符区,参数区,说明区,一般语句格式规范,标识符区,一般情况下,标识符区的符号为,“,/,”,,该符号表明该条语句为,JCL,语句,标识符区位于每条语句的第,1,、,2,列,在特殊情况下,标识符区的符号将有所变化,一般语句格式规范,名字区,名字区指明一个语句,便于系统控制块或其他语句引用它,名字可以由,18,个字母数字或通配符组成,但第一个字符必须是字母或通配符,且必须从第,3,列开始,名字区后必须跟一个或多个空格,可以选择名字表达出这个,JCL,语句的作用,一般语句格式规范,操作符区,操作符区位于名字区之后,规定了语句的类型:,JOB,、,EXEC,、,DD,、,PROC,、,PEND,,或操作员命令,操作符区后必须跟一个或多个空格,一般语句格式规范,参数区,参数区在操作符区之后,其中包括被逗号分隔的参数,这些参数决定该,JCL,语句如何被处理,参数区没有固定的长度及列的要求,一般语句格式规范,说明区,说明区位于参数区后,用于对相应语句进行注释说明,它可以是任何所需的说明信息,注释区后必须跟一个空格,需要注意的是,仅当参数出现时才能书写说明信息,不然容易与参数混淆,一般语句格式规范,续行,JCL,只允许在参数区和说明区有续行,当需要续行时,在当前行的第,71,列前必须将某个参数或某个子参数以及参数后的逗号写完整,且下一行第,1,、,2,列为,“,/,”,,第,3,列为空格,续行的内容只能从,416,列开始,如果从,16,列后开始,将被认为是注释语句,JCL,的语法规则,参数规则,在,JCL,中,参数区内的参数的类型分为两类:,位置参数(,positional,):与其他参数保持相对位置的参数,关键字参数(,keyword,):由一个关键字和等号后面的可变数据组成,如果在一个语句内既有位置参数又有关键字参数时,所有的关键字参数必须位于位置参数之后,JCL,的语法规则,参数的语法,1.,位置参数和关键字参数之间必须用逗号分开,不允许有空格,2.,必须按规定的次序书写参数:所有的关键字参数必须位于位置参数之后,而所有位置参数也必须按规定排列,3.,当缺省某个位置参数或某个子参数时,应以一个逗号指明所在位置。当缺省最后一个位置参数时,逗号可以省略,4.,当没有任何位置参数时,则不必书写任何内容表示,5.,关键字参数之间没有相对位置的规定,可以按任何次序排列,6.,允许含有特殊字符的参数或子参数,且其中的特殊字符并非起某种特定的语法功能必须用撇号,“”,替代括号将这些参数和子参数括起来,而在这些参数与子参数中要用到撇号时,则需两个连续的撇号表示有些语句中的某些参数或子参数含有一些特定的特殊字符时,将不需要用撇号括起来在,JCL,中用,“,&,”,来表识符号参数的开始。当参数中含有,“,&,”,且不用来表示符号参数时,则需使用连续的两个,“,&,”,来表示,“,&,”,。,7.JCL,的位置参数与关键字参数最多只能由两级子参数。也就是说用于括起子参数列表的括号最多只能有两层,JCL,的语法规则,JCL,语句的位置,1.JOB,语句,2.JOBLIB,语句,3.JOBCAT,及,SYSCHK,语句,4.,任何流内过程,5.,第一个,EXEC,语句,6.,任何的,STEPCAT,、,STEPLIB,,或一般的属于这一步的,DD,语句,7.,任何更多的,EXEC,语句及与他们相关联的,DD,语句,8.,任何空语句,JCL,的语法规则,JCL,语法实例,作业语句,/EXPJOB JOB ,USERNAME,MSGLEVEL=(1,1),EXAMPLE,作业语句续行,/MSGCLASS=Q,CLASS=A,/*,注释语句,/*IT IS A EXAMPLE*,/*,执行语句,/STEP1 EXEC PGM=IEFBR14,语句,/DD1 DD DSN=MJSN.TEAM01.ONE,DISP=(,CATLG),语句续行,/SPACE=(TRK,(5,2),UNIT=SYSDA,语句,/DD1 DD DSN=MJSN.TEAM01.TWO,DISP=(,KEEP),DD,语句续行,/SPACE=(TRK,(1,1),UNIT=SYSDA,JCL,语句,JOB,语句,JOB,语句标志一个作业的开始、分配作业名并设置相关的位置参数及关键字参数,每个作业的第一个语句必须是,JOB,语句,JOB,语句,语法规则,JOB,语句的格式如下:,/,作业名,JOB,位置参数,,关键字参数,,关键字参数,。,注释说明,作业名,作业名是用户给作业指定的名字。为使操作系统识别作业,必须选择确定的作业名字,由于系统不能同时运行具有相同名字得到作业,因此只能给作业一个唯一确定的名字,位置参数,记账信息(,accounting information,),程序员名(,programmer,s name,):程序员名用于标识作业的所有者(,owner,)信息,包括特殊字符在内,其长度不得超过,20,个字符,关键字参数,ADDRSPC BYTES CLASS MSGCLASS MSGLEVEL PRTY REGION TIME TYPRUN,JOB,语句,作业名,作业名必须遵守前面所提到的,JCL,语法规则,除此之外,建议用户采用,“,用户标识,USERID+,数字或字符,”,的作业名,例如用户标识为,JACK,,则作业名可用,JACKA,。,JOB,语句的位置参数,记账信息位,记账信息位于操作符,“,JOB,”,后,它用于提供用户使用系统的合法性、机时及纸张的收费管理等,如果省略记帐信息参数不写,则需要在,“,程序员名,”,前用一个逗号来表示;但如果两个位置参数全部忽略不写,则无需任何标示,JOB,语句的位置参数,程序员名,程序员名用于标识作业的所有者(,owner,)信息,包括特殊字符在内,其长度不得超过,20,个字符,JOB,语句关键字参数,ADDRSPC,指明作业所需之存储类型,它有两个子参数:,VIRT,:表示作业请求虚拟页式存贮,REAL,:表示作业请求实存存储空间,缺省值为,VIRT,其格式为:,ADDRSPC=VIRTREAL,例:,/PEH JOB,BAKER,ADDRSPC=VIRT,/DEB JOB,ERIC,ADDRSPC=REAL,REGION=100K,JOB,语句关键字参数,CLASS,CLASS,参数规定了作业的类别,,JCL,中可选用的作业类别有,36,个,用字母,AZ,及数字,09,表示,相同类别的作业处于同一输入队列等待执行并具有相同的处理属性。,作业类别的属性定义在,JES,中。当,CLASS,参数缺省时,,JES,将会根据安装时的缺省值赋予该作业一个缺省的,CLASS,值,JOB,语句关键字参数,SGLEVEL,用于控制,JCL,作业输出清单的内容,格式:,MSGLEVEL=(statements,messages),MSGLEVEL,statement,参数,指明在,JCL,作业输出清单中应打印出的作业控制语句的类型,取值范围为:,0,2,。,取值,0,:仅打印出作业的,JOB,语句;,取值,1,:打印出作业中包括过程语句在内的所有,JCL,语句;,取值,2,:输入流中的所有控制语句。,MSGLEVEL,message,参数,指明在,JCL,作业输出清单中应打印出信息的类型,取值范围为:,0 1,。,取值,0,:只有在作业异常终止时,打印出有关,JCL,、,JES,、操作员及,SMS,处理信息;,取值,1,:无论作业是否异常终止,都打印出有关,JCL,、,JES,、操作员及的处理信息,MSGLEVEL,实例,JOB,语句关键字参数,MSGCLASS,用于为作业日志(,job log,)设置输出类别。作业日志是为程序员提供的与作业相关信息的记录。当该参数省略时,系统将会采用默认值。,格式:,MSGCLASS=class,class,:定义作业日志的类别,与输入队列相似,,class,是一个,AZ,的字母或一个,09,的数字。,MESSAGECLASS,和,MESSAGELEVEL,的缺省值,JOB,语句关键字参数,NOTIFY,用于请求系统在后台作业处理完毕时给指定用户发送信息。如果作业完成时,该用户未在系统登录,则系统所发送的信息将会保留到此用户下次登录,格式:,NOTIFY=userid,userid,:必须以字母或通配符开头的,17,个字母、数字或通配符组成,其值必须是一个存在的,TSO,用户标识。,例:,/SIGN JOB,,,TLOMP,,,NOTIFY=TSOUSER,JOB,语句关键字参数,PRTY,用于为相应的输入队列中的作业分配优先级。系统根据作业优先级的高低来选择来选择作业执行,对于同一级的作业的选择将采取,“,先进先出,”,的原则,格式:,PRTY=priority,priority,:用数字量来表示优先级,数字越大表示优先级越高。根据作业进入子系统的类型,其取值范围是,JES2,:,015,;,JES3,:,014,JOB,语句关键字参数,REGION,(,1,),用于指定作业所需的实存或虚存空间的大小,系统将在该作业中的每一作业步使用该值。所需空间大小必须包含以下内容:,运行所有程序所需的空间,在运行期间,程序中宏指令,GETMAIN,所需的所有附加空间,任务初始化和终止时需要的自由空间,JOB,语句关键字参数,REGION,(,2,),格式:,REGION=valueK=valueM,valueK,:以千字节(,Kb,)为单位指出所需空间大小,,value,可取,17,位的十进制数,其取值范围为,12096128,。系统以每,4k,为一存储单位分配空间,所以,value,值应取,4,的倍数,如,REGION=68K,。当,value,值不是,4,的倍数时,系统会将其增至一最为接近的,4,的倍数的值。,valueM,:以兆字节(,Mb,)为单位指出所需空间大小,,value,可取,14,位的十进制数,其取值范围为,12047,REGION,和,ADDRSPC,/EX JOB .,REGION=512K,/ADDRSPC=REAL,JOB,语句关键字参数,TIME,用于指定作业占用处理器的最长时间并可通过一些信息得知该作业占用处理器的时间。当作业占用处理器时间超过指定值时,系统将终止该作业。通常情况下,此参数不用设置。当作业所需处理器时间长于系统缺省值时,或出于某种测试目的才设置此参数。,格式:,TIME=(minutes,seconds),=1440,=NOLIMIT ,=MAXIMUM ,JOB,语句,多个参数的例子,JCL,语句,EXEC,语句(,1,),EXEC,语句标明作业或过程中的每一作业步的开始,并告知系统如何执行该作业步。包括所有在,EXEC,语句中调用的过程中的所有作业步在内,一个作业最多可以有,255,个作业步,JCL,语句,EXEC,语句(,2,),作业步名是可以省略不写的,如需标明作业名时,该作业名必须在该作业内以及该作业调用的所有过程中是唯一的,它由,18,个字母或通配符开头的字符数字构成,EXEC,语句中的位置参数有两个:,PGM,和,PROC,。每条,EXEC,语句必须有且仅有一个位置参数或过程名,EXEC,语句的关键字参数是可选的,这些参数只作用于本作业步,EXEC,语句,作业步名,作业步名是可以省略不写的,如需标明作业名时,该作业名必须在该作业内以及该作业调用的所有过程中是唯一的,它由,18,个字母或通配符开头的字符数字构成,EXEC,语句,PGM,参数(,1,),PGM,参数用于指明所要执行的程序名。该程序必须是一个分区数据集(,PDS,)的成员或用作系统库(,system library,)、私有库(,private library,)临时库(,temporary library,)的扩充分区数据集(,PDSE,)的成员,EXEC,语句,PGM,参数(,2,),程序名的调用方法分为直接调用和间接调用,格式:,PGM=program-name,*.stepname.ddname,*.stepname.procstepname.ddname,program-name,:,program-name,(程序名)指明要执行程序的成员名或别名。程序名由由,18,个字母或通配符开头的字符数字构成。,*.stepname.ddname,:表示要执行的程序名由本作业步前名为,“,stepname,”,的作业步内名为,“,ddname,”,的,DD,语句的,DSN,参数决定。,*.stepname.procstepname.ddname,:表示要执行的程序名由本作业步前名为,“,stepname,”,的作业步里所调用过程内名为,“,procstepname,”,的过程步中相应名为,“,ddname,”,DD,语句的,DSN,参数决定。,在上述三种程序调用方法中,第一种为直接调用,而后两种为间接调用,EXEC,语句,PROC,参数(,1,),指明作业步所要运行的过程名,EXEC,语句,PROC,参数(,2,),格式:,PROC=procedure-name,procedure-name,procedure-name,:需要调用的过程名,过程名由,18,个字母或通配符开头的字符数字构成。所调用的过程名可以是:,编目过程的成员名或别名,由,PROC,语句定义的流内过程的过程名,该流内过程必须在本作业内且本作业步前定义,在设定该参数时,可直接写出过程名,EXEC,语句,关键字参数,当,EXEC,语句的位置参数指定程序名时,关键字参数的写法同,JOB,语句,当,EXEC,语句的位置参数指定编目或流内过程时,,EXEC,语句的关键字参数将覆盖所调用过程中各,EXEC,语句的关键字参数。因此如果想仅覆盖过程中的某个,EXEC,语句的关键字参数,则应在设置关键字参数时,同时指出所调用过程的相关过程步的名字,EXEC,语句的关键字参数,PARM,(,1,),用于向本作业步执行的程序传递变量信息。该程序必须有相应的指令接收这些信息,并使用它们,EXEC,语句的关键字参数,PARM,(,2,),格式:,PARM.,过程步名,=,子参数,PARM.,过程步名,=(,子参数,子参数,),PARM.,过程步名,=(,子参数,子参数,),PARM.,过程步名,=,子参数,子参数,包括所有的逗号、撇号以及括号在内,所有子参数的总长度不得超过,100,个字符。当某子参数中含有特殊字符或空格时,可以将该子参数用撇号括起来,在其它子参数一起用括号括起来,或将所有在参数用撇号括起来。,子参数:包含传递给程序的变量信息,EXEC,语句的关键字参数,COND,(,1,),用于对先前作业步执行的返回码(,return code,)进行测试,以决定是否执行本作业步,用户可以对特定作业步的返回码进行测试也可以对每一执行完毕的的返回码都进行测试。,如果测试条件不满足,系统执行本作业步,如果测试条件满足系统则不执行该作业步,作业中的第一个,EXEC,语句中的,COND,参数将被系统忽略,注意,当测试条件满足时,系统并非不正常终止该作业步,而只是跳过该作业步,该作业仍将正常执行,EXEC,语句的关键字参数,COND,(,2,),格式:,(,1,),COND.,过程步名,=(code,operator),(,2,),COND.,过程步名,=(code,operator,作业步名,过程步名,),(code,operator,作业步名,过程步名,),EVEN),ONLY,(,3,),COND=EVEN,COND=ONLY,利用,COND,参数最多可以有,8,个返回码测试,如果有,EVEN,或,ONLY,时,最多有,7,个测试。格式(,1,)只有在先前作业步没有非正常终止时,才能进行该测试。格式(,2,)、(,3,)测试决定于,EVEN,和,ONLY,的设置。,EXEC,语句的关键字参数,COND,(,3,),code,:系统使用,code,(测码)与先前作业步或某特作业步的返回码进行比较。,Code,的取值范围为:,operator,:表示,code,与返码的比较类型,这些比较操作符是:,GT,(大于)、,GE,(大于等于)、,EQ,(等于)、,NE,(不等于)、,LT,(小于)、,LE,(小于等于),EXEC,语句的关键字参数,COND,参数的实例(,1,),如果前面任意作业步的返回值小于或等于,8,,则跳过本作业步,EXEC,语句的关键字参数,COND,参数的实例(,2,),如果作业步,EXAMPLE2,的返回值小于等于,8,,则跳过本作业步,EXEC,语句的关键字参数,COND,的,EVEN,和,ONLY,子参数,EVEN,:表示无论即使先前作业步异常终止,本作业步都要执行。当,EVEN,子参数设定时:,不测试先前任何的异常终止作业步的返回码,测试那些正常完成的作业步的返回码,如果测试条件全部不满足的话,本作业步将执行,ONLY,:表示只有先前作业步异常终止,本作业步才执行。当,ONLY,子参数设定时:,不测试先前任何的异常终止作业步的返回码,测试那些正常完成的作业步的返回码,如果测试条件全部不满足的话,本作业步将执行,EXEC,语句的关键字参数,COND,的,EVEN,子参数的例子,即使,STEP3,非正常中止,,STEP4,仍会执行,EXEC,语句的关键字参数,COND,的,ONLY,子参数的例子,只有,STEP4,前的作业步发生异常中止时,,STEP4,才执行,JCL,语句,DD,语句,数据定义语句(,DD,语句)用于定义一个数据集以及该数据集所需的输入输出资源,DD,语句,格式,格式:,/dd,名,DD,位置参数,关键字参数,注释,过程步名,.dd,名,/dd,名,DD,过程步名,.dd,名,DD,语句,dd,名,“,dd,名,”,是为,DD,语句定义的名字,它由,18,个字母或通配符开头的字符数字构成,在一个作业步内可以有多个,DD,语句,但每个,DD,语句的,dd,名在本作业步中应该是唯一确定的,“,dd,名,”,可以由系统定义也可以由用户自己定义,当用户需要调用公用程序时,需根据公用程序的具体要求选用系统定义的,“,dd,名,”,用户自定义的,“,dd,名,”,不可与系统定义,“,dd,名,”,相重复,用户子定义,“,dd,名,”,可以根据数据的用途,遵循,“,dd,名,”,的规则来命名,当为应用程序输入输出结果定义数据集时,,“,dd,名,”,的命名规则取决于程序所用语言的类型,DD,语句的位置参数,*,参数,“,*,”,用于开始一个流内数据集。数据记录跟在,“,DD,”,语句之后,其第一、二列不能是,“,/,”,或,“,/*,”,;该记录可以是任何编如,EDCBIC,。下列符号表明流内数据记录的结束:,输入流中的,“,/*,”,。,表示另一个,JCL,语句开始的,“,/,”,。,当数据记录中需以,“,/,”,开始时,就必须使用,DATA,参数来代替,“,*,”,参数。,格式:,/dd,名,DD *,参数,注释,DD,语句的位置参数,DATA,用作一个流内数据集的开始,该流内数据集里含有以,“,/,”,开头的语句。数据记录紧跟在,“,DD DATA,”,语句之后;该数据记录可以是,BCD,或,EDCBIC,编码。数据记录将以,“,/*,”,作为结束。,格式:,/dd,名,DD DATA,参数,注释,例:,/GROUP3 DD DATA,DSNAME=&GRP3,data,/*,DD,语句的位置参数,DUMMY,DUMMY,参数用于标明:,没有设备或外存空间分配给该数据集。,对该数据集不进行状态处理。,对,BSAM,(,Basic Sequential Access Method,)或,QSAM,(,Queued Sequential Access Method,)来说,不对该数据集作输入输出操作。,用户使用,DUMMY,参数对程序进行测试。当测试完成时,如果用户希望恢复对数据集的输入输出操作时,只需将,DD DUMMY,参数替换成完整的数据集定义,DD,语句,DUMMY,的另一个用途是在编目或流内过程中,格式:,/dd,名,DD DUMMY,参数,DD,语句的关键字参数(,1,),DD,语句的关键字参数及其相关内容相对,JOB,语句和,EXEC,语句来说比较复杂,DD,语句通过这些参数完成下述任务:,定义顺序数据集(,sequential data set,)或分区数据集(,partitioned data set,)名;,描述数据集状态、属性及保留期限;,描述设备类型、数量;,设置数据集的记录格式、占用空间;,描述作业的处理方式。,DD,语句的关键字参数(,2,),DD,语句的关键字参数有很多,但总体上可分为两大类,一类与设备相关,另一类则与数据集或数据相关,与设备相关的参数有,UNIT,、,VOLUME,、,SPACE,、,LABEL,等,与数据集、数据相关的参数有,DSNAME,、,DISP,、,DCB,、,RECORG,、,EXPDT,、,RETPD,、,PROTECT,、,SYSOUT,、,HOLD,等,在实际应用中,这两类参数是配合使用的,没有一个绝对的分界线,DD,语句的关键字参数,DSNAME,DSNAME,参数被用来指定一个数据集的名字,对于一个新建的数据集来说,DSNAME,参数给定新数据集的名字;对于已存在的数据集来说,通过,DSNAME,参数来定位这个数据集。,格式:,DSNAME=,名字,DSN ,DD,语句的关键字参数,DISP,通过,DISP,参数可以向系统描述数据集的状态,并且可以设定系统在作业步或作业结束如何处理相应的数据集。你可以为作业或作业步的正常结束设定一个参数值同时为非正常结束也设定一个参数值,DD,语句的关键字参数,DISP,的格式,DISP=,状态,DISP=(,状态,正常结束参数,非正常结束参数,),DISP=(NEW,DELETE ,DELETE),OLD ,KEEP ,KEEP,SHR ,PASS ,CATLG,MOD,CATLG ,UNCATLG,UNCATLG,状态子参数可以取下列值:,NEW,表示在当前作业步中创建一个新的数据集。,OLD,表示该数据集在当前作业步运行之前已经存在,并且当前作业步将以独占的方式使用这个数据集。,SHR,表示该数据集在当前作业步运行之前已经存在,并且当前作业步将以共享的方式使用这个数据集,也就是说其它的作业也可以同时使用这个数据集。这个参数值也可以写成,SHARE,。,MOD,表示下列两种情况之一:,1,、数据集已经存在,记录将被添加到数据集的结尾,这个数据集必须是顺序的。,2,、一个新的数据集将被创建。在任何一种情况下数据集都将以独占的方式被使用。,正常结束参数可以取下列值:,DELETE,表示在作业步正常结束后,该数据集将不再需要而被删除,所占用的空间将会被释放。,KEEP,表示在作业步正常结束后,该数据集仍将继续保留在相应的卷上。,PASS,表示该数据集将会被保留传递到同一作业的后续作业步中被使用。,CATLG,在作业步正常结束后,系统将对数据集进行编目,在系统编目或用户编目中设置相应的入口指针指向该数据集。,UNCATLG,在作业步正常结束后,系统解除对数据集的编目,在系统编目或用户编目中删除相应的入口指针和索引。,非正常结束参数可以取的值基本与正常结束参数可以取的值相同,但不能够取,PASS,。,DD,语句的关键字参数,UNIT,UNIT,参数用于请求物理设备,用户通过设置设备地址或设备类或设备组名等子参数确定设通过设置设备数或,P,等子参数确定设备数量。,格式:,UNIT=(,三位设备地址,设备数,DEFER),/,三位设备地址,P,/,四位设备地址,设备类型,设备组名,UNIT=AFF=DD,名,DD,语句的关键字参数,UNIT,的子参数,设备地址:通过设备地址指定设备。设备地址是在系统安装时建立的,它由一个,3,位的十进制数或,4,位十六进制数构成。如用户请求的某设备其地址为,340,时,参数设置为,UNIT=340,。,设备类型:通过设备类型名称指定设备,这个名称通常是数字的,如通过,3480,、,3422,指定磁带机,通过,3340,、,3375,、,3380,、,3390,指定磁盘机。如用户请求设备是,3380,磁盘机时,参数设置,UNIT=3380,。,设备组名:通过设备组名请求一台或一组设备。被定义在一组中的设备可以是相同的,也可以可以是不同的。如一组设备中可以包含磁盘设备也可包含磁带设备。但通常都是将一类设备作为一个设备组,具体的设备组名在系统安装时定义。设备组名由,l,8,个字母符号构成,常见的有,SYSDA,、,DASD,、,TAPE,、,CART,等。,DD,语句的关键字参数,VOLUME,通过,VOLUME,参数可以指定所引用的数据集所在的卷或卷组,也可以用来指定新建数据集所在的卷或卷组。,在使用这个参数时,用户可以指定一个特定的卷、一组卷、具有特定序列号的卷或另外一个数据集所使用的卷。,对于一个跨越多个卷的数据集来说,这个参数还可以用来指定首先被处理的卷。,对于一个新建的数据集来说,可以通过不指定,VOLUME,参数或在,VOLUME,参数中不指定,SER,和,REF,子参数的方法在任何一个卷或卷组上创建该数据集,我们称这种方法为非特定卷,DD,语句的关键字参数,VOLUME,的格式,VOLUME=(PRIVATE,RETAIN,卷顺序号,卷数,),VOL ,SER=,序列号,SER=(,序列号,序列号,.),REF=,数据集名,REF=*.DD,语句名,REF=*.,作业步名,.DD,语句名,REF=*.,作业步名,.,过程作业步名,.DD,语句名,DD,语句的关键字参数,SPACE,SPACE,参数用于为新建数据集分配磁盘空间,对于磁带卷不起作用。,请求空间分配一般有两种方法:一是告知系统所需空间大小,由系统来分配合适的空间;二是请求系统分配某个特定的空间,如:从某个特定磁道到另一个特定磁道。,DD,语句的关键字参数,SPACE,的格式,由系统分配空间:,SPACE=(TRK,(,初次分配数量,再次分配数量,目录空间,),RLSE,CONTIG,ROUND),(CYL,索引,MXIG,(,块长度,ALX,(,记录长度,请求特定的磁道:,SPACE=(ABSTR,(,初次分配数量,地址,目录空间,),索引,仅请求目录空间:,SPACE=(,(,目录空间,),DD,语句的关键字参数,DCB,使用,DCB,参数可以完善数据集的数据控制块,(DCB),中的信息,格式:,DCB=(,子参数,子参数,.),DD,语句的关键字参数,SYSOUT,通过,SYSOUT,参数可以将相应的数据集标志为一个系统输出数据集。同时,SYSOUT,参数还可以完成以下的定义:,将这个系统输出数据集与一个输出类关联起来。,不通过,JES,而是要求一个外部的书写器程序来处理这个系统输出数据集。,指定这个数据集被打印输出的格式。,引用,JES2,的,/*OUTPUT,语句。,DD,语句的关键字参数,SYSOUT,的格式,格式:,SYSOUT=,输出类,*,(,输出类,书写器名,格式名,),INTRDR ,代码名,SYSOUT=(,),输出类:为数据集指定的输出类,输出类为一个字符:,AZ,或,09,。每一个输出类的属性在,JES,初始化时被定义。在,JES2,中输出类的缺省值为,A,。,*,表示输出类与在,JOB,语句中,MSGCLASS,参数的定义相同。,(,),指定输出类为空值。当引用,JCL,的,OUTPUT,语句中,CLASS,参数的定义时必须指定输出类为空值。,书写器名:确定一个系统书写器程序的名字,(18,个字符,),。一个外部书写器程是系统中一个用来处理输出的已启动的任务,每一个外部书写器程序有一个用户标识符与其相关联。通过在,DD,语句中指定外部书写器的名字来使用该书写器程序处理输出,特殊的,DD,语句,在,JCL,中有一些特殊的,DD,语句,通过这些语句用户可以完成指定私有编目、私有库、用于转存和检查点的数据集等特殊的功能,特殊的,DD,语句,JOBCAT,通过,DD,语句,JOBCAT,可以为作业定义一个私有的,VSAM,用户编目或完整的编目功能。系统可以在搜索主编目或搜索与数据集名的第一部分相关联的私有编目前先搜索本语句中定义的私有编目,特殊的,DD,语句,JOBCAT,的格式及说明,格式:,/JOBCAT DD DISP=OLD,DSNAME=,私有编目名,参数,.,说明,SHR,不要指定任何,UNIT,和,VOLUME,参数,系统将会从主编目中获取私有编目的位置。,可以通过在,JOBCAT,语句后立即跟有省略了语句名的,DD,语句的方法为作业指定多个这样的私有编目。,应当将,JOBCAT,语句放置在,JOB,语句之后,并且位于第一个,EXEC,语句之前。,如果作业中包含了,JOBLIB,语句,应当放置在,JOBCAT,语句之前,特殊的,DD,语句,JOBLIB,通过,JOBLIB DD,语句用户可以创建一个私有库或为作业指定一个私有库。,系统将会首先搜索所指定的私有库去查找那些在,EXEC,语句的,PGM,参数中使用的程序,只有在私有库中没发现相匹配的程序时系统才会去搜索系统库。,一个私有库实际上是一个位于一个直接访问设备上的,PDS,或,PDSE,,其中的每一个成员都是一个用户的可执行程序,JOBLIB,的实例,该作业未使用,JOBLIB,定义私有库,系统也无法从系统库中找到,STEPA,指定的程序,REPART,特殊的,DD,语句,STEPCAT,通过,DD,语句,STEPCAT,可以为作业步定义一个私有的,VSAM,用户编目或完整的编目功能。系统可以在搜索主编目或搜索与数据集名的第一部分相关联的私有编目前先搜索本语句中定义的私有编目,特殊的,DD,语句,STEPLIB,STEPLIB,语句的作用与,JOBLIB,相似,主要区别在于作用的范围分别是作业步和作业,同一个作业中后续作业步可以引用在,STEPLIB DD,语句中定义的私有库,同样,可以将一个,STEPLIB DD,语句放在内部流或编目过程中,但不能将,JOBLIB DD,语句放在内部流或编目过程中,特殊的,DD,语句,SYSIN,通常,我们使用,SYSIN DD,语句作为一个内部流数据集的开始。内部流数据集以,DD*,或,DD DATA,语句开头,这样的,DD,语句可以有任何一个有效的名字,包括,SYSIN,。如果在内部流数据之前省略这样的,DD,语句,系统会自动提供一个名为,SYSIN,的,DD*,语句,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服