《JCL语言与实用程序教程1.pdf》由会员分享,可在线阅读,更多相关《JCL语言与实用程序教程1.pdf(89页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 大大大大型型型型计计计计算算算算机机机机 -应应应应用用用用技技技技术术术术培培培培训训训训 -J J J JC C C CL L L L 语语语语言言言言与与与与实实实实用用用用程程程程序序序序 II目录 第一章 JCL 语言介绍.1 1-1 JCL 语言基本概念.2 1-2 JCL 语言的一个简单例子.3 1-3 JCL 语言的使用.4 1-4 查看 JCL 执行结果.6 第二章 JCL 语句.0 2-1 JCL 语法规则.1 2-2 JOB 语句.6 2-3 EXEC 语句.15 2-4 DD 语句.22 第三章 DD 语句的键字参数.27 3-1 DD 语句功能.28 3-2 DSN
2、AME 参数.29 3-3 DISP 参数.31 3-4 UNIT 参数.33 3-5 VOLUME 参数.35 3-6 SPACE 参数.37 3-7 DCB 参数.40 3-8 SYSOUT 参数.42 第四章 特殊的 DD 语句.44 4-1 系统定义的 DD 语句.45 4-2 JOBCAT DD 语句.46 4-3 JOBLIB DD 语句.47 4-4 STEPCAT DD 语句.49 4-5 STEPLIB DD 语句.50 4-6 SYSABEND,SYSMDUMP,和 SYSUDUMP DD 语句.52 4-7 SYSIN DD 语句.53 第五章 JCL 过程.54 5-1
3、 编目过程与流内过程.55 5-2 过程的参数与调用.57 5-3 JCLLIB 语句.58 5-4 调用过程时语句的覆盖.59 5-5 一个复杂的例子.60 第六章 常用实用程序.63 6-1 实用程序介绍.64 6-2 IEFBR14.65 6-3 IEBCOMPR.66 6-4 IEBCOPY.68 6-5 IEBGENER.74 6-6 DFSORT.76 III课程介绍 JCL 语言与实用程序 目的:JCL 语言与实用程序 目的:通过本课程的学习,学员能够对 JCL 语言有深入的了解,能够读懂和独立编写各种 JCL 语言,掌握常用实用程序的功能与使用,能根据需要编写进行处理的JCL。
4、主要内容:主要内容:学员主要完成以下主要内容的学习:?JCL 基本概念?JCL 语句的语法?JOB 语句的参数定义?EXEC 语句参数定义?DD 语句的参数定义?特殊的 DD 语句?JCL 过程的使用?常用实用程序的使用 预修课程:预修课程:IBM 大型计算机基本操作 长度:长度:2 天 相关课程:相关课程:教程作者:教程作者:温洪涛 1第一章 JCL 语言介绍 第一章 JCL 语言介绍?JCL 语言基本概念?JCL 语言的一个简单例子?JCL 语言的使用?查看 JCL 执行结果 21-1 JCL 语言基本概念 在 S/390 系统中,当用户需要使用计算机完成某项任务时,用户必须准备一个作业流
5、(Job Stream)。作业流中包含一个或多个作业(Job),作业是用 JCL(job control language)书写的.与 COBOL 等一般的编程语言不同,作业控制语言 JCL(Job Control Language)是用户与操作系统的接口。用户通过 JCL 的相应语句来与操作系统通讯,获得作业所需的资源等,按自己的意图来控制作业的执行。由几个语句组成,对于一个作业,JCL 为被执行的任务引导操作系统,并说明所需要的全部设备,在一个作业中,每一次程序的执行称为一个作业步,一个作业可包含几个作业步。一个作业中的各步是顺序执行的,因此一个作业步的输出可以作为下一个作业步的输入。作业
6、都必须包含三个 JCL 基本语句(JCL Statement)。它们分别是:(1)作业语句(JOB):标识一个作业的开始,提供必要的运行参数。(2)执行语句(EXEC):标识一个作业步的开始,定义本作业步所要执行的程序或过程。(3)数据定义语句(DD):用于描述应用程序所需要的数据文件。系统规定这三种语句行必须以“/”开头,/和/分别占据一行 JCL 语句的第一列和第二列 31-2 JCL 语言的一个简单例子 /COPYDATA JOB(),ERIC,/TIME=1440,/NOTIFY=&SYSUID,/REGION=0M,/CLASS=A,/MSGCLASS=X,/MSGLEVEL=(1,
7、1)/*COPY DATASET /CPYLOAD EXEC PGM=IEBCOPY,PARM=SIZE=1M /SYSPRINT DD SYSOUT=*/IN1 DD DISP=SHR,DSN=DEVP124.JCL /OUT1 DD DISP=SHR,DSN=DEVP124.SRC /SYSIN DD*COPY I=IN1,O=OUT1 S MEMBER=(JCLSMP1,R)/*上面就是一个 JCL 的例子,它的功能是把“JCLSMP1”从一个分区数据集拷贝到另一个分区数据集。41-3 JCL 语言的使用 1.为 JCL 分配数据集 1.为 JCL 分配数据集 JCL 必须作为一个成员存
8、储在分区数据集(PDS)中。使用 ISPF 3.2 的功能为 JCL 分配一个分区数据集,其格式必须是定长(RECFM=FB)并且记录长度 80 字节(LRECL=80).2.编辑 JCL 2.编辑 JCL 在上面建立的 PDS 里面创建一个 MEMBER,使用 ISPF 的编辑功能编辑 JCL 3.提交 JCL 3.提交 JCL 编辑好后就可以提交 JCL 给 JES2 去运行,有三种常用的提交方式:第一种是在 JCL 的编辑界面里,下面的命令行上输入“SUB”命令:File Edit Edit_Settings Menu Utilities Compilers Test Help ssss
9、sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss EDIT DEVP124.JCL(JCLSMP1)-01.10 Columns 00001 00072 *Top of Data*000001/COPYDATA JOB(),ERIC,000002/TIME=1440,000003/NOTIFY=&SYSUID,000004/REGION=0M,000005/CLASS=A,000006/MSGCLASS=X,000007/MSGLEVEL=(1,1)000008/*COPY NUMBER BE
10、TWEEN PDS 000009/CPYLOAD EXEC PGM=IEBCOPY,PARM=SIZE=1M 000010/SYSPRINT DD SYSOUT=*000011/IN1 DD DISP=SHR,DSN=DEVP124.JCL 000012/OUT1 DD DISP=SHR,DSN=DEVP124.SRC 000013/SYSIN DD*000014 COPY I=IN1,O=OUT1 Command=SUB Scroll=CSR F1=Help F2=Split F3=Exit F5=Rfind F6=Rchange F7=Up F8=Down F9=Swap F10=Left
11、 F11=Right F12=Cancel 51-3 JCL 语言的使用(续页)第二种是在 ISPF 3.4 的成员列表中,在 JCL 前直接写 SUB 命令:Menu Functions Confirm Utilities Help ssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss BROWSE DEVP124.JCL Row 00001 of 00012 Name Prompt Size Created Changed ID _ CDB2BAT 15 2002/09/05 2004/
12、08/28 14:33:12 DEVP124 _ CFBM999 217 2004/06/22 2004/07/13 14:04:57 DEVP82 _ CICSCOMP 6 2004/06/15 2004/07/27 17:01:00 DEVP124 _ DB2CBAT 4 2004/06/15 2004/08/17 19:13:39 DEVP124 _ DB2COBB 8 2004/06/15 2004/08/27 10:40:40 DEVP124 _ DB2CPROC 96 2004/08/17 2004/08/17 19:29:53 DEVP124 _ DEFVSAM 17 2004/
13、07/27 2004/08/04 11:21:23 DEVP124 _ DFHSIP 51 2002/09/18 2004/05/20 10:21:35 SYSPRGG _ DSNTIJMV 1201 2004/08/17 2004/08/17 18:56:23 DEVP124 _sub_ JCLSMP1 16 2004/07/27 2004/09/06 19:27:45 DEVP124 _ MAPCOMP 4 2004/07/27 2004/07/28 10:19:43 DEVP124 _ RUNBAT 15 2002/09/05 2004/08/28 14:33:12 DEVP124 *E
14、nd*Command=Scroll=CSR F1=Help F2=Split F3=Exit F5=Rfind F7=Up F8=Down F9=Swap F10=Left F11=Right F12=Cancel 第三种方法是使用直接使用 TSO 命令 SUBMIT 提交,可以在 ISPF 中任何地点发出命令:-ISPF/PDF PRIMARY OPTION MENU -OPTION =TSO SUBMIT DEVP124.JCL(JCLSMP1)USERID -0 ISPF PARMS -Specify terminal and user parameters TIME -1 BROWSE
15、 -Display source data or output listings TERMINAL-2 EDIT -Create or change source data PF KEYS -3 UTILITIES -Perform utility functions 4 FOREGROUND -Invoke language processors in foreground 5 BATCH -Submit job for language processing 6 COMMAND -Enter TSO command or CLIST 7 DIALOG TEST-Perform dialog
16、 testing 8 DB2 -Perform DATABASE 2 interactive functions C CHANGES -Display summary of changes for this release T TUTORIAL -Display information about ISPF/PDF X EXIT -Terminate ISPF using log and list defaults Enter END command to terminate ISPF.F1=HELP F2=SPLIT F3=END F4=RETURN F5=RFIND F6=RCHANGE
17、F7=UP F8=DOWN F9=SWAP F10=LEFT F11=RIGHT F12=RETRIEVE 61-4 查看 JCL 执行结果 JCL 提交时屏幕会返回提交程序的进程号,进入 SDSF 可以根据进程号或 JOB 名去查看JCL 执行结果,选择 SD.ST,找到提交的进程,在需要查看的 JCL 前输入“?”查看详细信息,如下例:Display Filter View Print Options Help -SDSF STATUS DISPLAY ALL CLASSES LINE 1-3(3)NP JOBNAME JobID Owner Prty Queue C Pos SAff A
18、Sys Status DEVP124 TSU01249 DEVP124 15 EXECUTION ZDVP ZDVP DEVP124 TSU00904 DEVP124 1 PRINT 1153?COPYDATA JOB01280 DEVP124 1 PRINT A 1245 COMMAND INPUT=SCROLL=CSR F1=HELP F2=SPLIT F3=END F4=RETURN F5=IFIND F6=BOOK F7=UP F8=DOWN F9=SWAP F10=LEFT F11=RIGHT F12=RETRIEVE 回车进入如下界面:Display Filter View Pri
19、nt Options Help -SDSF JOB DATA SET DISPLAY-JOB COPYDATA(JOB01280)LINE 1-4(4)NP DDNAME StepName ProcStep DSID Owner C Dest Rec-Cnt Page JESMSGLG JES2 2 DEVP124 X LOCAL 20 JESJCL JES2 3 DEVP124 X LOCAL 15 JESYSMSG JES2 4 DEVP124 X LOCAL 15 SYSPRINT CPYLOAD 102 DEVP124 X LOCAL 13 COMMAND INPUT=SCROLL=C
20、SR F1=HELP F2=SPLIT F3=END F4=RETURN F5=IFIND F6=BOOK F7=UP F8=DOWN F9=SWAP F10=LEFT F11=RIGHT F12=RETRIEVE 在结果中 JESMSGLG、JESJCL 和 JESYSMSG 三个 DDNAME 是所有 JCL 结果里都会有的,JESMSGLG 里存放各步的返回值和统计信息,JESJCL 里存放用户提交的 JCL 语句,JESYSMSG里存放的是 JES 运行 JCL 时发生的详细信息。其他的 DDNAME 则根据程序不同而或多或少,都是程序输出的数据。0 1-4 查看 JCL 执行结果(续
21、页 1)JESMSGLG 的一个例子:*TOP OF DATA*TOP OF DATA*1 J E S 2 J O B L O G -S Y S T E M Z D V P -N O D E N 1 -JES 节点名 N1 0 09.12.22 JOB01465-TUESDAY,07 SEP 2004-执行日期 09.12.22 JOB01465 IRR010I USERID DEVP124 IS ASSIGNED TO THIS JOB.-提交 JCL 的用户 09.12.22 JOB01465 ICH70001I DEVP124 LAST ACCESS AT 09:11:30 ON TUE
22、SDAY,SEPTEMBER 7,2004 09.12.22 JOB01465 HASP373 COPYDATA STARTED-INIT 1 -CLASS A-SYS ZDVP 09.12.22 JOB01465 IEF403I COPYDATA-STARTED-TIME=09.12.22 -执行时间 09.12.22 JOB01465 -TIMINGS(MINS.)-PAGING COUNTS-09.12.22 JOB01465 -JOBNAME STEPNAME PROCSTEP RC EXCP CONN TCB SRB CLOCK SERV PG PAGE SWAP VIO SWAPS
23、 -作业步信息 09.12.22 JOB01465 -COPYDATA CPYLOAD 00 45 38 .00 .00 .0 182 0 0 0 0 0 09.12.22 JOB01465 IEF404I COPYDATA-ENDED-TIME=09.12.22 09.12.22 JOB01465 -COPYDATA ENDED.NAME-ERIC TOTAL TCB CPU TIME=.00 TOTAL ELAPSED TIME=.0 -时间统计 09.12.22 JOB01465 HASP395 COPYDATA ENDED 0-JES2 JOB STATISTICS-JOB 统计-07
24、 SEP 2004 JOB EXECUTION DATE -16 CARDS READ -63 SYSOUT PRINT RECORDS -0 SYSOUT PUNCH RECORDS -4 SYSOUT SPOOL KBYTES -0.00 MINUTES EXECUTION TIME *BOTTOM OF DATA*1 1-4 查看 JCL 执行结果(续页 2)JESJCL 例子:*TOP OF DATA*TOP OF DATA*1/COPYDATA JOB(),ERIC,JOB01465 /TIME=1440,/NOTIFY=&SYSUID,/REGION=0M,/CLASS=A,/MS
25、GCLASS=X,/MSGLEVEL=(1,1)/*COPY NUMBER BETWEEN PDS IEFC653I SUBSTITUTION JCL-(),ERIC,TIME=1440,NOTIFY=DEVP124,REGION=1440,NOTIFY=DEVP124,REGION=0M,CLASS=A,MSGCLASS=X,MSGLEVEL=(1,1)2/CPYLOAD EXEC PGM=IEBCOPY,PARM=SIZE=1M 3/SYSPRINT DD SYSOUT=*4/IN1 DD DISP=SHR,DSN=DEVP124.JCL 5/OUT1 DD DISP=SHR,DSN=DE
26、VP124.SRC 6/SYSIN DD*/*BOTTOM OF DATA*BOTTOM OF DATA*JESYSMSG 例子:*TOP OF DATA*TOP OF DATA*ICH70001I DEVP124 LAST ACCESS AT 09:11:30 ON TUESDAY,SEPTEMBER 7,2004 IEF236I ALLOC.FOR COPYDATA CPYLOAD -数据集的分配 IEF237I JES2 ALLOCATED TO SYSPRINT IGD103I SMS ALLOCATED TO DDNAME IN1 IGD103I SMS ALLOCATED TO D
27、DNAME OUT1 IEF237I JES2 ALLOCATED TO SYSIN IEF142I COPYDATA CPYLOAD-STEP WAS EXECUTED-COND CODE 0000 -各步的返回码 IEF285I DEVP124.COPYDATA.JOB01465.D0000102.?SYSOUT IGD104I DEVP124.JCL RETAINED,DDNAME=IN1 -数据集的释放 IGD104I DEVP124.SRC RETAINED,DDNAME=OUT1 IEF285I DEVP124.COPYDATA.JOB01465.D0000101.?SYSIN I
28、EF373I STEP/CPYLOAD/START 2004251.0912 -各步及整个作业的时间统计 IEF374I STEP/CPYLOAD/STOP 2004251.0912 CPU 0MIN 00.01SEC SRB 0MIN 00.00SEC VIRT 1164K SYS 264K EXT 4K SYS 10544K IEF375I JOB/COPYDATA/START 2004251.0912 IEF376I JOB/COPYDATA/STOP 2004251.0912 CPU 0MIN 00.01SEC SRB 0MIN 00.00SEC *BOTTOM OF DATA*BOT
29、TOM OF DATA*0 第二章 JCL 语句 第二章 JCL 语句?JCL 语法规则?JOB 语句?EXEC 语句?DD 语句 1 2-1 JCL 语法规则语法规则?JCL 语句类型?JCL 字符集?一般语句格式规范?参数规则 22-1-1 JCL 语句类型 JCL 例子:/COPYDATA JOB NOTIFY=&SYSUID /*COPY NUMBER BETWEEN PDS /MYPROC PROC INDD=,OUTDD=/CPY EXEC PGM=IEBGENER /SYSPRINT DD SYSOUT=*/SYSUT1 DD DSN=&INDD.,DISP=SHR /SYSUT
30、2 DD DSN=&OUTDD.,DISP=(NEW,CATLG,DELETE),/SPACE=(TRK,(2,1),/DCB=(RECFM=FB,LRECL=80,BLKSIZE=240,DSORG=PS)/SYSIN DD DUMMY /MYEND PEND /CPYLOAD1 EXEC PGM=IEBCOPY,PARM=SIZE=1M /SYSPRINT DD SYSOUT=*/IN1 DD DISP=SHR,DSN=DEVP124.JCL /OUT1 DD DISP=SHR,DSN=DEVP124.SRC /SYSIN DD*COPY I=IN1,O=OUT1 S MEMBER=(JC
31、LSMP1,R)/*/CPYLOAD2 EXEC MYPROC,INDD=DEVP124.DATA,/OUTDD=DEVP124.DATA1 /CPYLOAD3 EXEC PGM=IEBCOPY,PARM=SIZE=1M /SYSPRINT DD SYSOUT=*NOT USE JCL 语句分为以下几种:?JOB 语句?EXEC 语句?DD 语句?/*流内数据结束?/*注释?/标记作业结束?PROC 过程起始标记?PEND 过程结束标记?Command 输入流中的操作命令 32-1-2 JCL 字符集 JCL 字符集 JCL 语言可以使用的字符集包括:(1)字母(共 26 个)A B C D
32、E F G H I J K L M N O P Q R S T U V W X Y Z(2)数字(共 10 个)0 1 2 3 4 5 6 7 8 9(3)特殊字符(共 10 个),./()*&+-=(4)通配符(共 6 个)$#(也可分别用 X7C X5B 和 X7B表示)(5)EBCDIC 可打印字符集 42-1-3 一般语句格式规范 JCL 中,除/*语句外的所有语句均以第一、二列的/符号作为开始标志,系统规定这些语句的长度为 80 列。这 80 列在逻辑上被划分为五个区域,分别是标识符区、名字区、操作符区、参数区和说明区,即:标识符区 标识符区 一般情况下,标识符区的符号为“/”,该符
33、号表明该条语句为 JCL 语句。标识符区位于每条语句的第一、二列。在特殊情况下,标识符区的符号将有所变化。如 3.2.1 中所讨论过的“/*”语句和“/*语句,则分别在标识符区中使用的符号“/*”和“/*”表示。名字区 名字区 名字区指明一个语句,便于系统控制块或其他语句引用它。名字可以由 18 个字母数字或通配符组成,但第一个字符必须是字母或通配符,且必须从第三列开始。名字区后必须跟一个或多个空格,可以选择名字表达出这个 JCL 语句的作用。下面给出几个正确与错误的名字区的例子:正确的 错误的/Z /9Z /BACKUP#1 /TAPEBACKUP/#99 /TEST*9 /$EXAM /E
34、XAM(0)操作符区 操作符区 操作符区位于名字区之后,规定了语句的类型:JOB、EXEC、DD、PROC、PEND,或操作员命令。名字区后必须跟一个或多个空格。例如:/EXAMPLE JOB/STEP1 EXEC/INDD1 DD 参数区 参数区 参数区在操作符区之后,其中包括被逗号分隔的参数,参数由事先规定好的关键字组成,对于这些参数其数值必须是可被代换的变值。参数区没有固定的长度及列的要求。例如:/EXAMPLE JOB 2000,CLASS=A/STEP1 EXEC PGM=IEYFORT/PRINT DD SYSOUT=A 说明区 说明区 说明区位于参数区后,用于对相应语句进行注释说
35、明,它可以是任何需要的说明信息,注释区后必须跟一空格。需要注意的是,仅当参数出现时才能书写说明信息,不然容易与参数混淆。下面是一个说明区的例子:/EXAMPLE JOB,CLASS=A IT IS A COMMENT JCL 只允许在参数区和说明区有续行,当需要续行时,在当前行的第 71 列前必须将某个参数或某个子参数以及参数后的逗号写完整,且下一行第 1、2 列为“/”,第 3 列为空格,续行的内容只能从 416 列开始,如从 16 列后开始,将被认为是注释语句。下面是一个续行的例子:/DATA DD DSN=SYS1.FORTLIB,/DISP=OLD 52-1-4 参数规则 在 JCL
36、中,参数区内的参数分为两种类型:1)位置参数:靠与其他参数的相对位置而定的参数。2)键字参数:以“键字名=值”的形式给出的参数。如果一个语句中既有位置参数又有位置参数,又有键字参数时,位置参数要按其位置,排在键字参数之前,如:/JOBA JOB 1000,CLASS=A JCL 中参数的书写规则如下:1)位置参数和键字参数之间必须用逗号分开,不允许有空格,这点要非常注意,否则会造成比较难于查找的错误。正确的情况:/COPYDATA JOB 1000,ERIC,NOTIFY=&SYSUID/JOBB JOB(1000,9),NOTIFY=&SYSUID 错误的情况:/COPYDATA JOB 1
37、000,ERIC,NOTIFY=&SYSUID/JOBB JOB(1000,9)NOTIFY=&SYSUID 2)参数必须按规定的次序书写,位置参数要依照位置次序书写,键字参数放在所有位置参数之后,键字参数可以随意顺序书写。正确的例子:错误的例子:/COPYDATA JOB 1000,NOTIFY=&SYSUID /COPYDATA JOB NOTIFY=&SYSUID,1000 3)有几个位置参数时,如果前面的参数不写使用省缺,必须用逗号留出位置,如:/JOBA JOB,SYSTEM,CLASS=A 4)如果没有指定任何位置参数时则可不为他们留位置,如:/JOBB JOB NOTIFY=&S
38、YSUID 5)键字参数只靠键字的名字区分,前后次序无关,以下两句是等效的:/JOBA JOB NOTIFY=&SYSUID,REGION=0M /JOBA JOB REGION=0M,NOTIFY=&SYSUID 6)允许含有特殊字符的参数或子参数,且其中的特殊字符并不起某种特定的语法功能,只当符号用事,要用单引号扩起来。如 ACCOUNT=123+345 7)JCL 参数可以有子参数,即以括号扩起来,逗号间隔的多个子参数,子参数最多有 2级,也就是括号最多有 2 层。6 2-2 JOB 语句语句?JOB 语句的作用?JOB 语句的位置参数?JOB 语句的键字参数 72-2-1 JOB 语句
39、的作用 JOB 语句的作用?提供了记帐信息;?定义了执行特征?指定系统信息和 JCL 语句输出级别?保持(HOLD)一个作业?指定作业的优先级别?限制使用系统资源(如 CPU 时间和主存空间要求)JOB 语句的通常模式为:作业名 JOB 帐号(记帐信息)程序员名 键字参数 位置参数 作业名由 1-8 个字符组成,标志一个作业,在作业提交时系统还会为作业产生一个作业号,这个作业号在整个系统里是唯一的。由于系统不能同时运行两个作业名相同的作业,所以希望同时运行的作业不要起相同的名字。82-2-2 JOB 语句的位置参数 JOB 语句的位置参数有两个,依次是:1)记帐信息:记帐信息是关键字 JOB
40、后面第一个参数,用于提供用户使用系统的合法性和机时记帐,其格式为:(account-number,accounting-information.)account-number:帐号 accounting-information:是可选的附加记帐信息。记帐信息及起子参数加起来不能超过 143 个字符,以下都是合法的记帐信息参数:/JOB43 JOB D548-8686/JOB44 JOB(D548-8686,12/8/85,PGMBIN)/JOB45 JOB(CFH1,2G14,15,2)2)程序员名:用来标志编写作业的 JCL,程序员名信息总长度不能超过 20 个字符,若名字中间有空格或其他特
41、殊字符,则用单引号。以下是合法的程序员名参数的 例子:/APP JOB,ERIC.VENN/JOBB JOB,WEN HONG TAO/JOBA JOB(846349,GROUP12),MATTHEW 92-2-3 JOB 语句的键字参数 JOB 语句中的关键字参数有如下几个:1 ADDRSPC 指明作业所需之存贮类型,它有两个子参数:VIRT 及 REAL。VIRT 表示作业请求虚拟页式存贮,而 REAL 表示作业请求实存空间。缺省值为 VIRT。其格式为:ADDRSPC=VIRT REAL 例:/PEH JOB ,BAKER,ADDRSPC=VIRT/DEB JOB ,ERIC,ADDRS
42、PC=REAL,REGION=100K 2 BYTES 指明打印作业的系统输出数据集的最大千字节数,同时该参数还指出当超过所给出的最大字节数时,系统对作业的处理方式。这些方式包括:取消作业(转储(dump)或不转储)或继续作业并向操作员发出超过最大字节数的警告信息。其格式为:BYTE=nnnnn (nnnnnn,CANCEL)(nnnnnn,DUMP)(nnnnnn,WARNING)nnnnnn:指明打印输出的最大千字节数,例:nnnnnn 取值 500,则表示 500,000 字节。nnnnnn 取值范围为:0 999999。CANCEL:当作业输出字节数超过 nnnnnn 时,系统将不转储
43、而直接取消该作业。DUMP:当作业输出字节数超过 nnnnnn 时,系统在取消该作业前将发出转储请求。WARNING:当作业输出字节数超过 nnnnnn 时,作业继续执行,系统将按照安装时规定的时间间隔不断向操作员发送警告信息。当 BYTE 参数或其子参数省略不写时,系统将采用安装时定义的默认值。例:/JOB1 JOB (123456),R F B,BYTES=(5000,CANCEL)/JOB1 JOB (123456),R F B,BYTES=40 除了 BYTES 参数外,JOB 语句中还有另三个参数可以限制作业输出的最大值,其格式及子参数的意义也与 BYTES 类似,它们是:CARDS
44、、LINES 及 PAGES。上述三个参数与 BYTES不同之处在于子参数 nnnnnn 的单位不同,分别是:卡数、行数及页数,读者可以类推使用。10 A D T S2-2-3 JOB 语句的键字参数(续页 1)3 CLASS CLASS 参数规定了作业的类别,JCL 中可选用的作业类别有 36 个,用字母 AZ 及数字09 表示。相同类别的作业处于同一输入队列等待执行(如图 3.2.1),并具有相同的处理属性。作业类别的属性定义在 JES 中。当 CLASS 参数缺省时,JES 将会根据安装时的缺省值赋予该作业一个缺省的 CLASS 值。格式:CLASS=jobclassCLASS=jobc
45、lass /J1 JOB ,CLASS=A,/J2 JOB ,CLASS=T 4MSGCLASS 用于为作业日志(job log)设置输出类别。作业日志是为程序员提供的与作业相关信息的记录。当该参数省略时,系统将会采用默认值。格式:MSGCLASS=class class:定义作业日志的类别。与输入队列相似,class 是一个 AZ 的字母或一个 09 的数字。例:/EXMP1 JOB ,GEORGE,MSGCLASS=F 5MSGLEVEL 用于控制 JCL 作业输出清单的内容,用户可以要求系统打印出如下内容:JCL 语句;输入流中的所有控制语句,即:所有的 JCL 语句及 JES2 或 J
46、ES3 语句;任何作业步调用的流内过程和编目过程语句;作业控制语句的信息;JES 及操作员对作业的处理信息:设备和卷的分配、作业步及作业的执行和终止、数据集的处理等。格式:MSGLEVEL=(statements,messages)112-2-3 JOB 语句的键字参数(续页 2)statements:指明在 JCL 作业输出清单中应打印出的作业控制语句的类型,取值范围为:0 2。取值 0:仅打印出作业的 JOB 语句;取值 1:打印出作业中包括过程语句在内的所有 JCL 语句;取值 2:输入流中的所有控制语句。messages:指明在 JCL 作业输出清单中应打印出信息的类型,取值范围为:0
47、 1。取值 0:只有在作业异常终止时,打印出有关 JCL、JES、操作员及 SMS 的处理信息;取值 1:无论作业是否异常终止,都打印出有关 JCL、JES、操作员及 SMS 的处理信息。例:/EXMP3 JOB ,MSGLEVEL=(2,1)/EXMP4 JOB ,MENTLE,MSGLEVEL=0/EXMP5 JOB ,MIKE,MSGLEVEL=(,0)6NOTIFY 用于请求系统在后台作业处理完毕时给指定用户发送信息。如果作业完成时,该用户未在系统登录,则系统所发送的信息将会保留到此用户下次登录。格式:NOTIFY=userid userid:必须以字母或通配符开头的 17 个字母、数
48、字或通配符组成,其值必须是一个存在的 TSO 用户标识。例:/SIGN JOB ,TLOMP,NOTIFY=TSOUSER 7PRTY 用于为相应的输入队列中的作业分配优先级。系统根据作业优先级的高低来选择来选择作业执行,对于同一级的作业的选择将采取“先进先出”的原则。格式:PRTY=priority priority:用数字量来表示优先级,数字越大表示优先级越高。根据作业进入子系统的类型,其取值范围是 JES2:015;JES3:014。例:/JOBA JOB 1,JIM WEBSTER,PRTY=12 8REGION 用于指定作业所需的实存或虚存空间的大小,系统将在该作业中的每一作业步使用
49、该值。所需空间大小必须包含以下内容:122-2-3 JOB 语句的键字参数(续页 3)运行所有程序所需的空间 在运行期间,程序中宏指令 GETMAIN 所需的所有附加空间 任务初始化和终止时需要的自由空间 如果 JOB 语句中的 REGION 参数省略不写的话,系统将采用每条 EXEC 语句中所定义的REGION 参数,当 EXEC 语句中的 REGION 参数省略不写时,系统将采用安装缺省值。格式:REGION=valueK =valueM valueK:以千字节(Kb)为单位指出所需空间大小,value 可取 17 位的十进制数,其取值范围为 12096128。系统以每 4k 为一存储单位
50、分配空间,所以 value 值应取 4 的倍数,如REGION=68K。当 value 值不是 4 的倍数时,系统会将其增至一最为接近的 4 的倍数的值。valueM:以兆字节(Mb)为单位指出所需空间大小,value 可取 14 位的十进制数,其取值范围为 12047 注:REGION 值必须是有效的存储空间,如果取值为 0 或任何大于系统极限的值时都有可能会引起存储问题。当系统未定义极限值时,value 值不能超过 16384K 或 16M。例:/ACCT1 JOB A23,SMITH,REGION=100K,ADDRSPC=REAL/ACCT2 JOB 175,FRED,REGION=2