《主机JCL培训》PPT课件.ppt_第1页
《主机JCL培训》PPT课件.ppt_第2页
《主机JCL培训》PPT课件.ppt_第3页
《主机JCL培训》PPT课件.ppt_第4页
《主机JCL培训》PPT课件.ppt_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,主机JCL基础培训,2,课程目的,JCL是主机平台程序开发中的基础工具 通过本课程的学习,让你在动手开发程序前掌握JCL知识,熟练使用JCL,3,目录,概述 基本概念 结构和实例 语法结构 语句介绍 常用的实用程序 JOB 提交 JOB返回码和执行信息,4,JCL是什么?,Job Control Language 作业控制语言 是一种电脑语言, 它由许多作业控制语句所组成, 用来调用作业系统(JES)对应用程序进行处理。即我们使用计算机系统完成某一任务时,需要对所作的工作及所需要的资源进行说明描述,并提交给计算机系统. 通俗的讲,就是为了让主机系统为你工作,你必须向系统描述要作的工作和需要的资源,用JCL向系统提供这些信息。,5,JCL作什么?,决定作业,创建JCL,提交作业,JES翻译JCL并送MVS,MVS完成作业,JES收集作业的输出和信息,用户查看和翻译输出,系统信息,用户动作,系统的动作,6,JCL:基本概念,JOB 用户使用计算机系统完成某一任务时,要求计算机所做的工作的集合。 JOB STEP 完成一个JOB,可能需要运行多个程序,每一个程序的执行称为一个作业步,每个作业步由许多作业控制语句组成。 JOB CONTROL STATEMENT 提交作业给系统,需要告诉系统JOB需要哪些输入资料,怎样处理,输出资料存储在哪里等,利用JCL通过一系列语句传送这些信息,这些语句叫作业控制语句。,7,/HP0014S JOB ACCT#,HP0014, / CLASS=A, / MSGCLASS=X, / MSGLEVEL=(1,1), / NOTIFY=&SYSUID /* /* THE FIRST JCL /* /STEP1 EXEC PGM=SORT /SYSIN DD * SORT FIELDS=(9,15,CH,A) /* /SYSOUT DD SYSOUT=* /SORTIN DD * HP0001 CHEN GANG HT0002 MA YAN HF0003 YE RUIHUA HS0004 XIA FAN HW0005 ZHOU FENGBO /* /SORTOUT DD SYSOUT=* /*,JCL结构,一个JCL作业有一个JOB语句,它描述该作业的相关信息 一个JOB语句下可有多个EXEC语句,每一句描述一个作业步 一个EXEC语句下可有多个DD语句,每一句描述该作业步所用的数据集(DD:Data Definition),8,JCL结构,9,JCL:实例,/COPYDS JOB (ACCT#),P390,NOTIFY=&SYSUID /* /STEP01 EXEC PGM=CCKDDUMP /STEPLIB DD DSN=SYS1.LINKLIB,DISP=SHR /SYSPRINT DD SYSOUT=* /SYSUT1 DD DISP=SHR,UNIT=3390,VOL=SER=SARES1 /SYSUT2 DD DSN=WH0009.SARES1.CCKD,DISP=(NEW,CATLG), / UNIT=3390,VOL=SER=MIIU01, / SPACE=(TRK,(10000,2000),RLSE), / DCB=(LRECL=4096,RECFM=FB,BLKSIZE=0,DSORG=PS) /* /STEP02 EXEC PGM=IEFBR14 /DD1 DD DSN=WH0009.SARES1,DISP=(NEW,CATLG), / UNIT=3390,VOL=SER=MIIU01, / SPACE=(TRK,(10000,2000),RLSE), / DCB=(LRECL=4096,RECFM=FB,BLKSIZE=0,DSORG=PS) /*,10,JCL:语法结构,每一个JCL语句可包含五个字段(域): 标识符字段 命名字段 操作数字段 参数字段 注释字段 | | | | | / NAME OPERATION OPERAND COMMENTS | | | 1,2列 |-371列-| 例: /DDNAME DD DSN=TRANS1,DISP=OLD TRANSACTION FILE,A. /必须写在第1列和第2列;(分隔符语句/*除外) B. Name字段必须从第3列开始书写,由18个字母和数字及通用符号($,#,),且第一位必须是字母或通用符号($,#,); C. 各字段间以空格分隔; D. 操作数字段必须跟随NAME字段,并且必须是语法规则里有的; E. Name字段、操作数字段、参数字段必须位于371列间;,11,JCL:语法结构,F. 对书写参数字段有如下规则: 参数字段紧跟在操作数字段之后; 各参数间不许有空格(因为空格是字段间的分隔符); 各参数间以逗号分隔; 参数字段前面和后面都必须至少有一空格; 参数字段需要换行时,/必须写在续行的第1列和第2列,续行的参数 字段必须从第4-16列之间开始书写。 G. 在一个作业步中描述各数据集的DD语句可以任意先后顺序书写。,12,JCL:语句介绍(JOB),JOB语句:作业语句 格式: /JOBNAME JOB operands comments 作用:用以标明一个作业的开始及其作业名, 同时提供必要的计数信息及其它相关的 参数。 规则:每一个JOB必须有且只能有一个JOB语 句,JOB语句中的jobname必须编写。,13,JOB 语句编写格式 /Jobname JOB accounting-information, / programmer-name, / CLASS=job-class, / MSGCLASS=message-class, / MSGLEVEL=(statements,messages), / REGION=region-size, / TIME=(minutes,seconds), / NOTIFY=user identification, / COND=(code,operator),), / TYPRUN=typerun, / LINES=(nnnnnn,action), / RESTART=stepname,JCL:语句介绍(JOB),14,JOB 语句主要参数说明 1)accounting-information 指定客户信息,可省略 2)programmer-name 标识作业的拥有者,可省略 3)CLASS=job-class 设定JOB处理的优先级别 给作业分配一个级别,供JES进行作业调度,一般用A,JCL:语句介绍(JOB),15,4)MSGCLASS=message-class 指定系统信息及JCL语句输出的级别,一般用A 具体级别的划分需查看JES2中OUTCLASS配置 5)MSGLEVEL=(statements,messages) 指定JOB 所有输出列表的内容,一般用(1,1) statements 0 = 只印出JOB 语句(即第一行) 1 = 所有JCL和procedure内容均印出 2 = 只印出JCL语句 messages 0 = 系统信息不印出, 除非 job abnormally 才印出 1 = 系统信息正常与否都印出,JCL:语句介绍(JOB),16,6)REGION=region-size 表示分配给 JOB 使用的存储空间大小 以 nnnn K或 nnnn M表示 nnnn 最好是4的倍数, 如: REGION=1024K REGION=0M,表示按需要系统自动分配 7)NOTIFY=user identification JOB处理完后的提示信息发送给指定的USER-ID, 若接收信息的使用者已经 logoff,信息会保存直至该 user ID logon 接收该信息为止,JCL:语句介绍(JOB),17,JOB语句实例:语句参数编辑好后,一般很少改动,JCL:语句介绍(JOB),/JCLTST JOB ACCT#,USERTST, / CLASS=A, / MSGCLASS=A, / MSGLEVEL=(1,1), / NOTIFY=&SYSUID, / REGION=1024K,18,JCL:语句介绍(EXEC),EXEC语句:执行语句 作用:用以标明一个作业步的开始及分配一个作业步名,标识一程序或过程执行。,格式: /stepname EXEC PGM | PROC, PARM= parameter, REGION= region-size, COND= (code,operator,stepname),), TIME=(minutes,seconds),19,EXEC语句主要参数说明: 1)PGM= program name PGM:标识执行的程序名 举例:/STEP1 EXEC PGM=SORT 2)PROC=procedure name PROC:标识执行的过程名 3) PARM= parameter PARM:此参数传送必要的值给被EXEC语句激活的程序 格式:PARM=(A,B,C) 其中: A,B,C代表被传送的参数值(数字,字符) 举例:/LKED EXEC PGM=HEWL,PARM=LISTA,LISTB,LISTC 4)REGION:定义分配给该作业步的存储空间的大小,JCL:语句介绍(EXEC),20,5)COND= (code,operator,stepname),) COND:根据前面各作业步的返回码决定是否继续执行该作业步。即在每个作业步执行之前,要判断COND参数的条件,如果为真,该作业步跳过。,JCL:语句介绍(EXEC),COND=(code,operator,stepname) | | 0-4095 GT 大于 | LT 小于 | EQ 等于 | NE 不等于 | GE 大于等于 | LE 小于等于 | | 含义:IF _ IS _ STEP返回码 THEN 跳过该作业步,21,COND语句举例: 1)COND=(4,LT) 当上步返回码大于4时不执行当前作业步 2)COND=(8,LT,STEP3) 当STEP3的返回码大于8时不执行当前作业步 3)COND=(8,LT,STEP1.RC),(4,LT,STEP2.RC) 当STEP1的返回码大于8,且STEP2的返回码大于4时,不执行当前作业 EXEC语句举例(包含PGM,REGION,PARM,COND各参数): /LKED EXEC PGM=IEWL,REGION=1M,PARM=(LIST,XREF),COND=(5,LT,COB),JCL:语句介绍(EXEC),22,PROC语句:过程语句 如果我们经常使用同一段JCL,可以把它事先准备好,供大家调用,这段JCL称作过程(Procedure) 格式:/procname PROC PARM= 作用:用以标识过程开始及过程名,分配缺省的参数。 可以省略PROC=,只写PROC的名字 举例:/STEP01 EXEC PROC=PROC1 或 /STEP01 EXEC PROC1,JCL:语句介绍(PROC/PEND),23,PEND语句 过程分两类 in-stream proc 过程直接写在JOB STREAM中 以 PROC开始,以 PEND 语句结束 cataloged proc 过程以 member 方式放在 procedure library 中 以 PROC开始,无须 PEND 语句结束 格式:/ PEND 作用: 用以标识过程结束 第37页中有JCL实例,列出以上2种过程调用的使用方法,JCL:语句介绍(PROC/PEND),24,JCL:语句介绍(JCLLIB),JCLLIB语句: 格式:/NAME JCLLIB ORDER=(DATASET NAME,) 作用:用以指定过程库的数据集,此数据集含有EXEC使用的过程。 举例: /SEARCH JCLLIB ORDER=(USER.PROC) 含义: 程序中需要使用的过程PROC在数据集USER.PROC中 第37页中有相关JCL实例。,25,JCL:语句介绍(DD),DD语句:数据定义语句 作用:用以标识和描述被EXEC语句激活的程序要使用数据集及指出数据集所需要的输入输出的资源。,26,JCL:语句介绍(DD),DD语句主要参数说明: 1)DSNAME:指定使用的数据集 格式:顺序数据集,DSN=DATASET NAME PDS数据集, DSN=DATASET NAME(MEMBER) 举例:/SORTIN DD DSN=DVLP.HP0014.SORT.DATA,DISP=SHR /SORTIN DD DSN=DVLP.HP0014.JCL(SORTDAT1),DISP=SHR 2)SYSOUT:分配输出队列,指定输出数据的格式 格式:SYSOUT=* OR X (*表示不限制输出队列;X为队列名称) 如: /SYSPRINT DD SYSOUT=* 3)VOLUME:指定数据集的卷号或卷组 格式;VOL=SER=(VOL1,VOL2) 4)UNIT:标识数据集存储的设备(地址) 格式:UNIT=3390 含义:使用3390设备,3390设备表示磁盘,27,JCL:语句介绍(DD),5)SPACE:定义数据集存储空间 格式:SPACE=( TRK,CYL,BLKS,(primary , secondary), RLSE) TRK/CYL/BLKS : 表示空间分配的容量单位 primary : 表示第一次分配的空间大小 secondary : 表示二次再分配空间大小,一个卷上最多 15 次 RLSE : 当数据集被使用完毕后,释放多分配的空间 举例:SPACE=(TRK,(60,15),RLSE) 6)DCB: 数据控制块(Data Control Block),描述数据集的结构、组织形态等 格式:DCB=(RECFMFB|VB,LRECL=num1,BLKSIZE=num2,DSORG=PO|PS) 7)DSNTYPE:数据集类型(只有PDSE才需要指定) 格式:DSNTYPE=LIBRARY,28,JCL:语句介绍(DD),8)DISP:向系统描述数据集的状态和作业步完成时系统如何处置数据集 DISP=(执行前状态,正常终止后处置, 异常终止后处置) 第1个参数表示执行前数据集状态: NEW 分配新的数据集 OLD 更新该数据集 MOD 当数据集不存在时, 视为 NEW;存在时在尾部增加记录 SHR 已存在,只读并共享数据集 处置: DELETE 删除 KEEP 保存,但不记录CATALOG PASS 保留该数据集并传递给后续作业步(仅用于正常终止) CATLG 保留该数据集并记录CATALOG UNCATLG 不在CATALOG中记录该数据集 格式:DISP=(NEW|OLD|SHR|MOD,DELETE|KEEP|PASS|CATLG|UNCATLG,DELETE|KEEP|CATLG|UNCATLG),29,JCL:语句介绍(DD),DISP参数缺省使用情况: 1)NO DISP DISP=(NEW,DELETE,DELETE) 2)DISP=NEW DISP=(NEW,DELETE,DELETE) 3)DISP=OLD DISP=(OLD,KEEP,KEEP) 4)DISP=SHR DISP=(SHR,KEEP,KEEP) 5)DISP=MOD DISP=(MOD,KEEP,KEEP) 6)DISP=(,CATLG) DISP=(NEW,CATLG,CATLG),DD语句举例: /PSDEMO DD DSN=IBMUSER.PSDEMO,DISP=(NEW,CATALOG,DELETE), / SPACE=(TRK,(10,5),UNIT=3390,VOL=SER=MIIU02, / DCB=(RECFM=FB,LRECL=80,DSORG=PS),30,JCL:语句介绍(Special DD),JOBLIB :指定该作业的程序库 格式:/JOBLIB DD 如: /JOBLIB DD DSN=USER1. BATCH. LOADLIB, DISP=SHR STEPLIB :指定该作业步的程序库 格式:/STEPLIB DD 注意:当使用不在系统库(Library) SYS1.LINKLIB中的程序时,需要用 以上2个参数指定程序所在的库 SYSIN :输入的数据集 1)指定输入的数据集 如:/SYSIN DD DSN=TESTPG.BAO.SOURCE(XXXXXX),DISP=SHR 2)DUMMY :标识数据集没有输入输出 如:/SYSIN DD DUMMY 3)input stream(输入数据流):*号标识输入数据的开始 如:/SYSIN DD * data /*,31,格式:/* 注释的内容 作用:注释,/* /* JOB :TESTJCL * /* FUNCTION: * /* VERSION : * /* AUTHOR : * /*,JCL:语句介绍(注释语句),32,JCL:常用的实用程序,IEFBR14:文件定义、删除 IKJEFT01:执行TSO或其他环境的命令 IEBGENER:文件定义、拷贝、转换等 IEBCOPY:文件拷贝、压缩、合并等 IDCAMS:文件定义、删除、拷贝、重组、换名 ICEMAN:对数据进行排序、合并、记录重组 。,33,JCL:IEFBR14,/CREATEDS EXEC PGM=IEFBR14 /SETP01 DD DSN=USER1.TEST1,DISP=(NEW,CATLG,CATLG), / SPACE=(TRK,(10,5),UNIT=3390,VOL=SER=TSTWK1, / DCB=(RECFM=FB,LRECL=80,DSORG=PS),IEFBR14本身执行空操作,通常用它来对数据集进行处理,比如创建数据集。,34,JCL: IKJEFT01,/ADDUSER EXEC PGM=IKJEFT01 /SYSTSPRT DD SYSOUT=* /SYSTSIN DD * ADDUSER (TST0001) NAME(USERTEST) + DFLTGRP(APPL) OWNER(SYS1) + TSO(ACCT(12345678) PROC(APPLPROC) ADDUSER (TST0002) NAME(ZHANG SHAN) + DFLTGRP(APPL) OWNER(SYS1) + TSO(ACCT(12345678) PROC(APPLPROC),IKJEFT01用于执行TSO或其他环境的命令。需要执行的TSO命令存放于SYSIN中。下面的作业表示新建用户。,35,JCL:IDCAMS,/STEP1 EXEC PGM=IDCAMS /VOLUME DD UNIT=3390,VOL=SER=TSTWK2,DISP=OLD /SYSPRINT DD SYSOUT=* /SYSIN DD * DEFINE PAGESPACE - (NAME(SYS1.COMMON2.PAGE) - CYLINDERS(86) - VOLUMES(TSTWK2) /*,IDCAMS用于生成和维护数据集,主要是CATALOG、VSAM等较特殊的数据集或者是ISPF所不支持的数据集。下面的作业表示建立系统PAGESPACE文件。,36,JCL:IEBGENER,/COPYDS EXEC PGM=IEBGENER /SYSPRINT DD SYSOUT=A /SYSUT1 DD * THIS IS TEST LINE 1 THIS IS TEST LINE 2 THIS IS TEST LINE 3 /SYSUT2 DD DSN=DEV.LN.LNFXXX2,DISP=(NEW,CATLG,CATLG), / UNIT=3390,VOL=SER=TSTWK3,SPACE=(TRK,(10,5), / DCB=(RECFM=FB,LRECL=80) /SYSIN DD DUMMY,IEBGENER用于生成顺序数据集,拷贝顺序数据集中的记录,或将顺序数据集转换成分区数据集,还可扩充现有的分区数据集,重组数据集,编辑数据集。通常使用它的拷贝功能,此时SYSIN设置成DUMMY。下面的作业表示拷贝内容至新建立的数据集中。,37,JCL:PROC,/SAMPPRO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论