User's Guide To JCL

preview
需积分: 0 5 下载量 29 浏览量 更新于2008-12-21 收藏 100KB PDF 举报
### User's Guide to MVS JCL #### 1. Introduction 《用户使用MVS JCL指南》是由Rich Jirsa和Rita Varga编著,于1985年11月出版的第三版,后由Larry Ludwig进行了修订。本书旨在为用户提供一套全面的指南,帮助他们更好地理解和掌握IBM大型机系统中的作业控制语言(Job Control Language,简称JCL)。MVS JCL是IBM MVS操作系统中用于编写和控制作业流的一种脚本语言。 #### 2. 关于JCL的一般信息 JCL是一种用来定义和控制计算机作业执行过程的语言,主要应用于IBM的大型机系统上。它允许用户通过一系列预定义的命令来设置作业的运行环境、指定数据集的位置以及配置各种资源限制等。了解JCL的基本结构对于有效地管理和调度作业至关重要。 #### 3. 设置作业提交 在MVS环境中设置一个作业并提交通常需要遵循一定的格式和规则。本书提供了推荐的通用作业格式,这有助于确保作业能够按照预期的方式执行。例如,作业通常由多个部分组成:JOB语句定义作业的基本属性,EXEC语句指定要执行的程序,而DD语句则定义了数据集和其他输入/输出设备。 ##### 推荐的通用作业格式 - JOB语句:定义作业的名称、优先级等。 - EXEC语句:指定要执行的程序或过程。 - DD语句:定义输入输出的数据集或其他设备。 #### 4. 继续JCL语句 当JCL语句过长时,可以使用继续行来扩展该语句。继续行可以通过在一行的末尾放置连字符(-)来实现,这样下一行将被视为当前语句的一部分。例如: ``` //JOBNAME JOB 123456,MSGCLASS=A // - // CLASS=S ``` #### 5. 术语表 本书包含了一个术语表,其中解释了JCL中常用的术语和概念。这对于初学者理解JCL的关键元素非常有帮助。例如,`JOB`语句用于定义作业的基本属性,如作业名、优先级等;`DD`语句用于定义数据集和其他输入输出设备。 #### 6. 数据集命名约定 在MVS JCL中,正确地命名数据集非常重要。本书提供了一些命名约定,以帮助用户创建符合标准的数据集名称。通常,数据集名称由多个部分组成,包括库名、用户名和数据集名等。例如,`USER.LIBRARY.FILE`。 #### 7. 作业类别 作业类别是用于对作业进行分类的一个属性。不同的作业类别可能会有不同的处理优先级或资源分配策略。了解作业类别的概念对于优化作业调度至关重要。例如,`S`类作业通常具有较高的优先级。 #### 8. //JOB语句 `//JOB`语句是每个JCL作业的起点,用于定义作业的基本属性,如作业名称、优先级、消息等级等。例如: ``` //JOBNAME JOB 123456,MSGCLASS=A // CLASS=S ``` #### 9. /*JOBPARM语句 `/*JOBPARM`语句用于传递额外的参数给作业,这些参数可能会影响作业的行为。例如,可以通过这个语句来设置激光打印机选项。 ##### 激光打印机选项 - `COPIES(n)`:指定打印副本的数量。 - `COLOR(c)`:设置打印颜色,如`COLOR(BLACK)`。 - `DUPLEX(d)`:指定是否使用双面打印,如`DUPLEX(NO)`。 #### 10. /*LOGONID语句 `/*LOGONID`语句用于指定作业执行时使用的登录ID。这有助于确保作业在正确的用户上下文中运行。 #### 11. /*PASSWORD语句 `/*PASSWORD`语句用于提供作业执行所需的密码。这对于安全性和认证是非常重要的。 #### 12. /*ROUTE语句 `/*ROUTE`语句用于指定作业执行时应采取的路径或节点。这对于分布式环境中作业的路由非常有用。 #### 13. /*OUTPUT语句 `/*OUTPUT`语句用于定义作业输出的目标,例如打印机或数据集。同样,也可以设置激光打印机选项。 #### 14. 用户过程库://PROCLIB DD语句 `//PROCLIB` DD语句用于指定包含过程的库。这些过程可以在作业中被调用以执行特定任务。 ##### 用户过程库限制 - 库必须存在于用户的默认库列表中。 - 过程不能包含与当前作业相冲突的语句。 #### 15. EXEC语句及其参数传递 `EXEC`语句用于指定要执行的程序或过程。可以通过`PGM`参数来指定程序名,并使用`PARM`参数来传递参数给程序。 ##### 单步测试 单步测试是指对程序中的单个步骤进行测试。这可以通过在`EXEC`语句中指定特定步骤来实现。 ##### 多步测试 多步测试是指同时测试程序中的多个步骤。这可以通过使用`EVEN`和`ONLY`关键字来实现。 ##### EVEN 和 ONLY - `EVEN`:用于指定仅执行偶数步骤。 - `ONLY`:用于指定仅执行特定步骤。 #### 16. REGION 参数 `REGION`参数用于为作业分配内存区域。这对于大型数据处理作业特别有用。 #### 17. DD语句 `DD`语句用于定义数据集和其他输入输出设备。这是JCL中最常用的语句之一,其格式多样,功能强大。 #### 18. DD语句—格式1 格式1是最基本的`DD`语句格式,用于简单地定义数据集。 ##### Notes on Format 1 - `DSN`:指定数据集名。 - `DISP`:指定数据集的处置方式,如创建、修改等。 - `DCB`:定义数据集的逻辑块大小等。 ##### Examples of Format 1 ``` //INPUT DD DSN=USER.INPUT.FILE //OUTPUT DD DSN=USER.OUTPUT.FILE,DISP=(NEW,CATLG) ``` #### 19. DD语句—格式2 格式2适用于更复杂的场景,允许用户定义更详细的属性。 ##### Class - 定义数据集的类型,如顺序文件、分区文件等。 ##### Code - 指定数据集的存储属性。 #### 20. DD语句—格式3 格式3是最具灵活性的格式,可以用于定义高级数据集属性。 ##### General Format ``` //DATASET DD DSN=USER.DATA.SET, // DISP=(OLD,MODIFY), // DCB=(RECFM=F,LRECL=80,BLKSIZE=1200), // UNIT=SYSDA, // SPACE=(CYL,(5,5),RLSE) ``` #### 21. 特殊的DD名称 本书还介绍了一些特殊的DD名称,它们在JCL中具有特定的意义。例如,`SYSIN`用于指定作业的输入,而`SYSOUT`则用于指定作业的输出。 #### 22. /*COMMENT语句 `/*COMMENT`语句用于添加注释到JCL脚本中,这对于提高代码可读性和维护性非常有帮助。 #### 23. /*DELIMITER语句 `/*DELIMITER`语句用于定义字符串分隔符,这对于处理含有特殊字符的数据非常有用。 #### 24. //END-OF-JOB语句 `//END-OF-JOB`语句用于标记作业的结束,这是每个JCL作业必需的组成部分。 #### 25. I/O语句与数据集之间的连接 本书还探讨了I/O语句与数据集之间的关系,包括如何通过DD语句来控制输入输出设备。 ##### Restrictions - 某些类型的设备不能同时用于输入和输出。 - 特定的DD名称只能与特定类型的设备关联。 #### 26. 内部阅读器 内部阅读器是一个内置的程序,用于读取数据集并将其作为输入传递给作业。了解如何使用内部阅读器可以帮助用户更高效地处理数据。 #### 27. 修改过程 有时候需要在过程中进行一些修改以适应特定的需求。这部分内容介绍了如何修改已有的过程。 #### 28. 使用操作员控制台 操作员控制台是大型机系统中用于监控和管理作业的重要工具。本书提供了一些关于如何使用操作员控制台的信息。 #### 29. 常见JCL错误消息 书中列出了常见的JCL错误消息及其含义,这对于诊断和解决问题非常有帮助。例如,“UNAUTHORIZED USE OF DATASET”表示尝试访问未经授权的数据集。 #### 结论 《用户使用MVS JCL指南》是一本非常实用的手册,不仅涵盖了JCL的基础知识,还深入讨论了许多高级主题。无论是初学者还是经验丰富的用户,都能从中受益匪浅。通过对本书的学习,用户可以更加熟练地使用JCL来管理和控制MVS系统上的作业。
手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部