JCL面试题总结

发布时间:2022-12-19 15:07:32

JCL部分:一,DISP参数用来告诉系统要使用的数据集的状态是什么并且告诉系统当本作业步正常或异常结束时如何处理这个数据集。默认的是(NEW,DELETE,DELETE数据集状态描述:NEW:分配新的数据集。OLD:指明数据集在本作业步执行前已经存在,这里用排他方式使用它(独占这个数据集)SHR:指明数据集在本作业步执行前已经存在,这里用共享的方式使用它。这两种方式每写入一次就刷新一次,即覆盖先前写入的记录。MOD:指明是以下两种情况之一:如果数据集已经存在,独占这个数据集,而且在本作业步里的新数据会加到文件末尾,要求数据集必须是顺序文件。如果数据集不存在,在本作业步里创建它。以上两种情况下,数据集都是排他性使用的,文件打开后,读写指针都会移到文件末尾。正常结束时的处理参数:DELETE:指明本作业步结束后系统删除此数据集,释放所占空间。KEEP:指明作业步结束时数据集仍然保留。PASS:指明数据集要保留给后面的作业步使用,一般对临时数据集使用。CATLG:指明作业步结束后保留该数据集并自动对数据集编目。UNCATLG:指明作业步结束后自动清除数据集编目。非正常结束时的处理参数:DELETE:指明作业步结束后系统删除此数据集,释放所占空间。KEEP:指明非正常结束时数据集仍然保留。CATLG:指明作业步结束后自动对数据集编目。UNCATLG:指明作业步结束后自动清除数据集编目。二,JCL中怎么定义在子程序中要调用的文件?DD语句三,DATASET怎么从一个STEP传递到另一个STEPA:传递由DISP参数决定,使用DATASET只能被传递到下一个STEP//STEPAEXECPGM=FILL//DD1DDDSN=SWITH.GROUP1,…,DISP=(,PASS//STEPBEXECPGM=CHAR//DD2DDDSN=STEPA.DD1,DISP=(OLD,CATLG,DELETE四,JOBLIB语句STEPLIB语句和JCLLIB语句有什么区别?JOBLIB是特殊的DD语句的名字;该语句跟在JOB语句之后,指定一个存放程序的私有库的名称,作用于整个JOB,对于所有的steps都有效,并且不能放在编目过程中,系统到里面去找EXEC语句PGM参数指定的程序名,私有库中找不到再去系统库中查找,指定的私有库必须是PDS数据集,面存放可执行程序。STEPLIB也是特殊的DD语句的名字;该语句是在EXEC语句之后,也是指定一个存放程序的私有库的名称,私有库中找不到直接转到系统库,忽略JOBLIB,只作用于当前作业步,只对当前的step有效,不同于JOBLIB,它可以放在编目过程中。JCLLIB是操作区的操作符。指定一个或多个本作业的私有过程库。系统按照顺序去查找作业中调用的编目过程。六,一个数据集的主分配和从分配有什么区别?主分配是数据集建立时的空间,从分配是当要求更多空间时所分配的七,如何建立一个临时数据集,在那里会用到他们?
创建了临时数据集时不需要指定的DSNAME或用指定的临时文件DSN=&&TEMP在同一个JOB中,我们用它来将输出数据从一个作业步传到另一个作业步,在作业完成后该数据集删除八,在一个特殊作业步中如何restart一个PROCJOB中,指定RESTART=PROCSTEP.STEPNAMEPROCSTEPJCL作业部的名字,执行作业步时可以调用PROCSTEPNAME九,TIME参数的意思是甚么?TIME=1440表示什么?JCL中与其相关的语句是什么?TIME当程序需要更多的CPU时间时用于克服S322abendsTIME=1440表示作业的运行没有时间限制,即24小时。TIME指为一个特定的JOBJOBSTEP分配的最大的CPU时间。如果TIMEJOBCARD里指整JOB的执行的最大时间,如果在EXEC语句里则指该JOBSTEP执行的最大时间。十,COND=EVENCOND=ONLY分别是什么意思?即使先前作业步异常终止,本作业步都要执行只有先前作业步异常终止,本作业步才执行十一,描述EXEC语句,它的意义语法,和关键字?EXEC语句使用“PGM=程序名”指出了要执行的程序名。格式是//STEPEXECPGM=程序名。PARM参数用来传递要执行的程序的外部(实参)值。十二,你认为JCL是做什么的?JCL大体由几个关键语句组成?什么是作业结束的标志?JCL是作业控制语言,是用户与操作系统的接口,用户通过JCL语句按照自己的意图来控制作业的执行关键语句:JOB,EXEC,DD结束标志://十三,流内数据作用?怎样定义流内数据?DD*DDDATA语句有什么不同之处?作用:向数据集(一般是PS)或COBOL程序传递数据内容;配合实用程序,书写流内控制语句定义方法:由DD语句,DD*DDDATE,DDDUMY加数据构成不同:DD*结束符可以为///*DDDATE结束符只能为/*DD*输入的数据,数据不允许‘//’开始DDDATE输入的数据,数据含有‘//’开始十四,如何在一个JCL中检查是否有语法错误?JOB语句中,TYPERUN=SCANJSCAN表示不执行作业只检查语法.COPYJSE2一起使用HOLD挂起;JCLHOLD类似HOLD不同是在JCL被扫描前就HOLD了。十五,JCL中的实用程序介绍?IDCOMS----定义VSAM数据集,删除所有数据集,其它管理功能IEBCOPY---处理PDS的拷贝,压缩,合并和重组IEBGENER--拷贝PS,或将PS转换成PDSMEMBERIEBGENR也能用控制语句SYSIN来做一些数据的重定格式IEFBR14---空程序,只是返回返回码0,创建,删除非VSAM数据集DFSORT----对数据集进行排序,拷贝和合并(一般是PS十六,当在JOBLIBSTEPLIB中指定了多个DATASET库,什么因素决定(访问)顺序?blocksize值最大的库应该最先访问。十七,流内过程和编目过程有什么区别?流内过程写在一个作业内部,只能被本作业调用。一个JOB里,流内过程最多能建15而编目过程只能以某个PDSmember形式存在,可被多个作业调用。十八,在DD语句中SYSOUT参数的目的是什么?通过SYSOUT参数可以将相应的数据集标志为一个系统输出数据集。同时SYSOUT还可以完成以下的定义:(1将这个系统输出数据集与一个输出类关联起来;

JCL面试题总结

相关推荐