1 / 108

大型机高级系统管理技术

大型机高级系统管理技术. 第 3 章 作业控制语言. 第 3 章 内容提要. JCL 语句 JCL 相关实例 特殊的 DD 语句 过程 实用程序. JCL 语句 ——JCL 语句的分类. 作业控制语言 JCL 由九种语句组成: 作业语句( JOB ) 执行语句( EXEC ) 数据定义语句( DD )(以上三种为 JCL 基本语句) /* 语句:表示流内数据结束或调用 JES 控制语句 //* 语句:注释语句,由第 4 到第 80 列写出注释内容 // 语句:空语句,用以标记一个作业的结束

zulema
Download Presentation

大型机高级系统管理技术

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 大型机高级系统管理技术 第3章 作业控制语言

  2. 第3章 内容提要 • JCL语句 • JCL相关实例 • 特殊的DD语句 • 过程 • 实用程序

  3. JCL语句——JCL语句的分类 • 作业控制语言JCL由九种语句组成: 作业语句(JOB) 执行语句(EXEC) 数据定义语句(DD)(以上三种为JCL基本语句) /* 语句:表示流内数据结束或调用JES控制语句 //*语句:注释语句,由第4到第80列写出注释内容 //语句:空语句,用以标记一个作业的结束 PROC语句:流内过程(IN-STREAM PROCEDURE)或编目过程(CATALOGED PROCEDURE)的起始标记 PEND语句:标志一个流内过程的结束。 Command语句:操作员用这个语句在输入流中写入操作命令

  4. JCL的语法规则 JCL的语法规则——JCL字符集 ——一般语句格式规范 ——参数的语法 —— JCL语句的位置 —— JCL语法实例 以上内容在《大型机系统概述》一书中都有详细讲解,不明 确者可以参照该书,作为一个系统管理员这些知识必需熟练 掌握。

  5. 通常使用的(JCL)作业 //SP99COPY JOB 1,'H.X.P',CLASS=A,MSGLEVEL=(1,1),MSGCLASS=X, // NOTIFY=SP99 //*********************************************************** //COPY1 EXEC PGM=ADRDSSU,REGION=3072K //SYSPRINT DD SYSOUT=* //DASD1 DD DISP=SHR,UNIT=3390,VOL=SER=Z5RES1 //DASD2 DD DISP=OLD,UNIT=3390,VOL=SER=VOLB80 //SYSIN DD * COPY INDDNAME(DASD1) - OUTDDNAME(DASD2) - PURGE - FULL - COPYVOLID /*

  6. JOB语句 JCL语句——JOB语句 • JOB语句标志一个作业的开始 分配作业名并设置相关的位置参 数及关键字参数,每个作业的第 一个语句必须是JOB语句

  7. JOB语句 JOB语句——作业名 • 作业名必须遵守前面所提到的 JCL语法规则 • 除此之外,建议用户采用“用户 标识USERID+数字或字符”的作业 名,例如用户标识为JACK,则作 业名可用JACKA。

  8. JOB语句 JOB语句的位置参数——记账信息位和程序员

  9. JOB语句 JOB语句关键字参数——ADDRSPC、BYTES、CLASS、MSGCLASS、MSGLEVEL、NOTIFY、PRTY、REGION、TIME、TYPRUN和其他参数

  10. JOB语句

  11. JOB语句

  12. JOB语句

  13. JOB语句关键字参数REGION • 作为一个优秀的系统管理员,对于JOB语句关键字参数一定要搞清弄懂。这里主要以REGION参数为例进行讲解。 • 首先看REGION参数的表现形式 //XP99A JOB 1,HXP,…,REGION=2M  //S1 EXEC PGM=…,REGION=1024K

  14. JOB语句关键字参数REGION • 它不会导致系统去获取任何有效的存储空间,如果在一个Job Card 上编写“REGION=0M”,该作业不GETMAIN 系统上的所有虚拟存储空间。 • 它仅仅会影响 Local DataArea 的Control Block 中的两个数据值。这是两个全字(二进制值),存放的是地址空间可GETMAIN 的虚拟存储的最大数量。 • 一个字段存放最大24 Bit(即在16 兆字节线以下) • 一个字段存放最大31 Bit(即在16 兆字节线以上) • REGION 的这个(双重)参数十分重要,可以同时限制24Bit 和31 Bit 存储。

  15. JOB语句关键字参数REGION • REGION=OM /= OK • REGION值=0: • 这是个特殊的情况,它将限定对于地址空间可用的所有24 Bit 和31 Bit 虚拟存储的最高值。

  16. 参数缺省(默认)值 • 对24 Bit 存储:在8M _10M 之间 • 典型的线下存储的默认最大值<10M,即作业不能在该线以下获取更多的存储。 • 如果该值是一个Impossible REGION 值,作业将会出现S822 Abend。 • 对31 Bit 存储:在1600M_1900M 之间 • 注意: • 缺省值并不会获取任何内存。 • REGION 参数仅用于它对所在地址空间虚存的限制(包括作业、作业步、TSU等)。

  17. JOB语句关键字参数REGION • 需要牢记的是: JCL 的REGION参数是较令人混淆的参数JCL其本质类似HTML,是所谓的“静态”语言 • JCL设计的目的仅仅是用来创建调用程序的框架,它不能主动采取措施。 • 它的所有关键词和参数,对现有或新创建的Run-Time 组件进行定义。一些JCL 参数可设置限制或者建立其他Run-Time 变量,但JCL 本身只能为程序建立一个Run-Time 环境,而不能进行存储获取和数值改动等活动。

  18. JOB语句关键字参数REGION • 鉴于此,关于REGION 参数如何在z/OS JCL Stream 中影响虚存,要记住以下三个关键要素: 1. 它从不获取任何存储,它仅设置限定。 2. 在Job Card 上编写的REGION 值覆盖任何Step-coded 值。 3. 编写的值有一个范围,16M 以下,REGION 值限定24 Bit 存储;32M以上,REGION 值限制31 Bit 存储。

  19. JOB管理中的若个问题 • 1. INIT启动程序    原系统的启动程序是12个。    进行教学或者培训时,管理员可以根据需要增加启动程序个数,比如有扩大到30个的,IPL后立即可用22个,另外8个通过命令来激活,采用作业提交方式,把一个CICS启动起来 • 2. 学生提交作业时,常见的几种现象  学生在练习时,由于大量作业的提交,会造成启动程序 (INIT)的短缺,致使后继的JOB处于等待状态。

  20. JOB管理中的若个问题 在学生提交的作业中,因分配的资源(如VOL)出   错,该作业将等待处理,会使后继的作业排队等候。 注意:出现这种错误,是无法直接将作业删除的,必须按消息号回答:nnCANCEL    学生们若使用相同的作业名,也会使这些作业排队等待。    学生提交的作业中,如果在JOB语句中用了未定义的CLASS参数,会造成该作业处于HOLD状态。    其它种种问题(如新建数据集重名)等,都会导致作业产生异常终止。

  21. 作业状态信息 IN 作业正在执行(已交换入) IN* 作业正在进入(已交换入) OUT 作业未做任何工作(已交换出,准备好执行) OU* 作业正在退出(正在交换出) OWT 作业正在等待某事(已交换出,未准备好执行) NSW 正常状态。当作业在等待带机资源(如等装带,重绕 带)或等待口令,也会处于“NSW”状态,一旦条件满 足,即转为“IN”状态。 另外,当一个作业使用磁带完 毕后 ,也会从 “IN”转为“NSW”状态。 NF – Address is not dispatchable because of a failure in the Address. 常见的有:OUTNF,OWTNF,IN NF,IN NFJ 等。

  22. 作业消息 A :要求响应,操作员必须响应。 D :要求决策,操作员必须做出一种选择。 E :要求最终响应,若有时间,操作员要求员响应。 I :指示信息,不要求响应。 W:等待(处理暂行),直至决定并响应为止。

  23. 作业消息 nn aaa nnna text →消息摘要 nnn:为3个十进制数 | ↓ a = I :通知性消息 | 消息码=IEA:消息发自任务管理 A:需立即性动作 | IEC:消息发自数据管理 D:必须做出决定 | IEE:消息发自主调度程序 E:必须推迟性动作 | IEB:消息发自作业调度程序 W:等待纠正动作 | IEF:消息发自终止/恢复管理 | IGF:消息发自终止/恢复管理 ↓ $HASP :消息发自JES2管理 在reply中指定的ID号

  24. 作业控制命令 • 作业控制命令用于管理JES2控制下所运行的作业,作为一个系统管理员,基本命令应该熟练掌握。 • $C,$A :删除、释放作业。 • $D :显示各种队列中的作业,如$DN,$DQ, $DO等。 • $H,$E :用于对作业的挂起与重新排队。 • $L,$O :用于查看、输出排队队列中的作业。 • $P :用于删除输出队列中的作业。

  25. 作业控制命令 • $T :改变一个作业的运行级别(CLASS)和优先数(PRTY),也可以改变某个启动程序(INIT)为某类作业服务的类别等。 • $R :用于指定作业的输出,引导到指定的设备上去。 • D A,L /A – 显示有关活动的批作业、TSO终端用户、系统任务等概要/详细信息。 • D J,L/A – 仅显示活动批作业的概要/详细信息。 • D T,L/A –仅显示活动的TSO终端用户概要/详细信息。

  26. EXEC语句 JCL语句——EXEC语句(1) • EXEC语句标明作业或过程中的每一作业步的开始,并告知系统如何执行该作业步。一个作业最多可以有255个作业步

  27. EXEC语句 • JCL语句——EXEC语句(2) •EXEC语句中的位置参数有两个:PGM和PROC。 •EXEC语句的关键字参数是可选的,这些参数只作用于本作业步

  28. EXEC语句 • EXEC语句——PGM参数(1)

  29. EXEC语句 EXEC语句——PGM参数(2) • PGM参数用于指明所要执行的程序名。 • 程序名的调用方法分为直接调用和间接调用 • 格式: PGM ={program-name} {*.stepname.ddname} {*.stepname.procstepname.ddname}

  30. EXEC语句 EXEC语句——PROC参数(1)

  31. EXEC语句 EXEC语句——PROC参数(2) • 指明作业步所要运行的过程名 • 格式: {PROC=procedure-name} {procedure-name } • 在设定该参数时,可直接写出过程名

  32. EXEC语句 EXEC语句——关键字参数 • EXEC语句的关键字参数是可选的, 这些参数只作用于本作业步。 • 书写形式: 关键字参数.过程步名=值

  33. EXEC语句 EXEC语句的关键字参数——PARM(1) •用于向本作业步执行的程序传递变量信息。

  34. EXEC语句 EXEC语句的关键字参数——COND(1) • 用于对先前作业步执行的返回 码(return code)进行测试,以 决定是否执行本作业步 • code:系统使用code(测码) 与先前作业步或某特作业步的返 回码进行比较。

  35. EXEC语句 EXEC语句的关键字参数——COND(2) • code:系统使用code(测码) 与先前作业步或某特作业步的返 回码进行比较。 • operater:表示code与返码的 比较类型,这些比较操作符如右 图:

  36. EXEC语句 COND的子参数——EVEN和ONLY • EVEN:表示无论即使先前作业 步异常终止,本作业步都要执行。 • ONLY:表示只有先前作业步异 常终止,本作业步才执行。

  37. DD语句 JCL语句——DD语句 •数据定义语句(DD语句)用于定义 一个数据集以及该数据集所需的 输入输出

  38. DD语句 DD语句的位置参数——* ——DATA ——DUMMY DD语句的关键字参数分为两大类,一类与设备相关,另一 类则与数据集或数据相关,与设备相关的参数有UNIT、 VOLUME、SPACE、LABEL等,与数据集、数据相关的参 数有DSNAME、DISP、DCB、RECORG、EXPDT、 RETPD、PROTECT、SYSOUT、HOLD等

  39. DD语句 • DD语句通过这些参数完成下述任务: •定义顺序数据集(sequential data set)或分区数据集(partitioned data set)名; •描述数据集状态、属性及保留期限; •描述设备类型、数量; •设置数据集的记录格式、占用空间; •描述作业的处理方式。 下面介绍其中几个参数:

  40. DD语句 • 通过DISP参数可以向系统描 述数据集的状态,并且可以设定 系统在作业步或作业结束如何处 理相应的数据集。实例如右图:

  41. DD语句 • UNIT参数用于请求物理设备, 用户通过设置设备地址或设备类 或设备组名等子参数确定设通过 设置设备数或P等子参数确定设 备数量。具体如右图:

  42. DD语句 • 通过VOLUME参数可以指定 所引用的数据集所在的卷或卷 组,也可以用来指定新建数据 集所在的卷或卷组。

  43. DD语句 • SPACE参数用于为新建数据 集分配磁盘空间,对于磁带卷不 起作用。

  44. DD语句 •使用DCB参数可以完善数据集 的数据控制块(DCB)中的信息 •格式:[ DCB=(子参数[,子参数]...)]

  45. DD语句 • 通过SYSOUT参数可以将相 应的数据集标志为一个系统输 出数据集。

  46. JCL实例 • 学习了上述JCL的基本知识后,下面通过一些JCL实例来掌握JCL的正确用法,这些对一个优秀的系统管理员是不可或缺的。 • 几个必要的JCL实例:   1.磁带卷初始化 //SP99INT 1,HXP,MSGLEVEL=(1,1),MSGCLASS=X,CLASS=A, // NOTIFY=SP99 //TAPINT EXEC PGM=IEHINITT //SYSPRINT DD SYSOUT=* //LABEL1 DD UNIT=(580,1,DEFER) //SYSIN DD * LABEL1 INITT SER=AAAAAA(,NUMBTYPE=1)

  47. JCL实例 // LABEL1 INITT SER=BBBBBB LABEL1 INITT SER=CCCCCC LABEL1 INITT SER=DDDDDD // LABEL1 INITT SER=050001,NUMBTAPE=9 //* 注:当给出 NUMBTSPE=X,其中X>1时,SER=nnnnnn,必须是数字。  2. Delete VSAM //SP99DEL JOB 1,HXP,CLASS=A, // MSGLEVEL=(1,1),MSGCLASS=X //DEL EXEC PGM=IDCAMS

  48. JCL实例 //SYSPRINT DD SYSOUT=* //VOL1 DD UNIT=3390,DISP=OLD,VOL=SER=USER02 //SYSIN DD * DELETE (‘ST001.VASM.KSDS') - FILE(VOL1) /* // 3.盘卷初始化(JCL) //XP99IN JOB 1,'H.X.P',CLASS=A,MSGLEVEL=(1,1), // MSGCLASS=X,NOTIFY=&SYSUID //INVOL EXEC PGM=ICKDSF,REGION=6144K //SYSPRINT DD SYSOUT=*

  49. JCL实例 //SYSIN DD * INIT UNITADDRESS(0A97),VERIFY(XX3017) PURGE - INDEX(99,1,2) VTOC(100,0,15) NOVALIDATE - VOLID(USER05) OWNER(CHUR) // 注意:用于不同目的的盘卷,VTOC的空间大小也不同: VTOC(100,0,15) VOLID(WORK01) VTOC(100,0,30) VOLID(TSO001) VTOC(100,0,45) VOLID(USER01) 上述盘卷的初始化还应注意几个问题

  50. JCL实例 ① 本系统的盘卷资源没有用SMS来管理,所以在对盘卷进行初如化时,不能加入SMS参数 (SG)。 ② 盘卷VTOC的大小,视各种用途而定: • 一般15_30 TRKs就够了 • TSO、USER卷的VTOC可以大些,如 45 TRKs ③ INDEX部分可以不定义,但对I/O性能会有影响。 4. SYSLOG转储的过程(JCL) //SLGWRT PROC //IEFPROC EXEC PGM=IASXWR00,

More Related