JCL面试关键点:DISP参数与数据集管理

5星 · 超过95%的资源 需积分: 9 2 下载量 56 浏览量 更新于2024-09-15 收藏 58KB DOC 举报
"本文主要总结了JCL面试中常见的知识点,包括DISP参数的使用、DD语句在定义文件调用中的应用、数据集在步骤间的传递方式,以及JOBLIB、STEPLIB和JCLLIB语句的区别。" 在JCL(Job Control Language)面试中,DISP(Disposition)参数是经常讨论的关键点。DISP参数用于指示系统如何处理数据集,即数据集的状态及其在作业步结束后应如何处置。默认设置是(NEW, DELETE, DELETE),这意味着一个新的数据集会被分配,作业步结束后将被删除。 1. 数据集状态描述: - NEW:分配新的数据集,如果数据集已存在,将会被覆盖。 - OLD:数据集在作业步执行前已存在,以排他方式使用,每次写入都会覆盖原有记录。 - SHR:共享方式使用已存在的数据集,每次写入也会覆盖。 - MOD:如果数据集存在,则独占并追加数据;若不存在,创建并追加数据。这种情况下,数据集是排他性的,读写指针位于文件末尾。 2. 正常结束时的处理参数: - DELETE:作业步结束后删除数据集。 - KEEP:保留数据集。 - PASS:将数据集传递给后续作业步。 - CATLG:保留数据集并自动编目。 - UNCATLG:作业步结束后自动清除数据集的编目。 3. 非正常结束时的处理参数与正常结束时类似,但可能根据具体需求有所不同,例如保持数据集以便分析错误原因。 在JCL中,DD语句用于定义子程序中要调用的文件。例如,`//DD1DDDSN=SWITCH.GROUP1,…,DISP=(,PASS)`,这定义了一个名为DD1的数据集,数据源为SWITCH.GROUP1,并在步骤结束后将其传递给下一个步骤。 数据集的传递通常通过DISP参数来控制,例如在例子中,`//DD2DDDSN=STEPA.DD1,DISP=(OLD,CATLG,DELETE)`,表明DD1数据集在步骤B中被引用,数据集状态设为OLD,结束后编目并删除。 4. JOBLIB、STEPLIB和JCLLIB的区别: - JOBLIB:定义在JOB语句之后,指定一个私有库,作用于整个作业,所有步骤都可以访问。系统首先在JOBLIB中查找程序,若未找到则继续搜索公共区域。 - STEPLIB:仅对当前步骤有效,用于指定该步骤的程序库。 - JCLLIB:这是一个更通用的术语,可能指的是用于存放JCL的库,不一定是程序库,可以包含作业、步骤或其他JCL相关资源。 理解并掌握这些基本概念对于JCL的使用和面试至关重要,它们构成了批处理作业流程的核心元素,确保数据的正确处理和程序的顺利执行。在实际工作中,熟练运用这些知识能提高批处理作业的效率和可靠性。