JCL是怎么调用PGM干活
一、JCL的开头
//COB2LNK JOB (PLS,81038),'PETER SOPER',CLASS=A,REGION=4096K,
// MSGLEVEL=(1,1),MSGCLASS=A,NOTIFY=&SYSUID
上面的JOB语句不用过多的解释 ,都是基本的位置参数和键值参数
//*************************************************************
//* JOB TO COMPILE AND LINK A COBOL PROGRAM
//*************************************************************
//COMP EXEC PGM=IGYCRCTL
//STEPLIB DD DSN=COBOL.V2R1M0.SIGYCOMP,DISP=SHR
编译的过程,调用的程序主要是COBOL.V2R1M0.SIGYCOMP数据集中的IGYCRCTL成员,该成员中
的存储数据的方式是二进制形式,为什么是二进制,这要回忆起编译原理了,代码是需要被
没必要做过多的了解。但是我们必须知道 COBOL程序在被编译
的时候,所用的是编目过程并且数据集和成员名要知道。
//SYSIN DD DSN=EXT2238.TOM.COBOL(TSORT),DISP=SHR
名为SYSIN的DD语句是引入COBOL程序存放的dataset和member ,其状态是share,SHR是它的多谢
//SYSLIB DD DSN=CEE.SCEELKED,DISP=SHR
这是系统的LIB,当程序执行PGM为IGYCRCTL时,先到STEPLIB指定的数据集COBOL.V2R1M0.SIGYCOMP中查找,如果该数据集中没有IGYCRCTL member时,就到SYSLIB指定
的CEE.SCEELKED数据集中查找 IGYCRCTL member ,注意这个member
里头有种类似于目录的创建方式,可以在里面添加JCL文件
另外一种方式是只能放测试数据或者就是类似于JCL文件
PS:顺序数据集,DIRECTORY BLOCKS=0,这个里头没有MEMBER
PDS: 分区数据集,就是上头哪个不等于0 这个里面才会有成员
数据集名字的长度区分也是1到8位
————————————————
二、JCL对INDD和OUTDD的处理
//SYSLIN DD DSN=&OBJ,SPACE=(3040,(40,40),,,ROUND),UNIT=VIO,
// DISP=(MOD,PASS),
// DCB=(BLKSIZE=3040,LRECL=80,RECFM=FBS,BUFNO=1)
创建的临时数据集,存储时所用的单元不是TRK和CYL,而是块长作为存储单元,所以space的
字参数用到ROUND,如果存储用TRK和CYL为存储单元时,ROUND可以省略。
//SYSUT1 DD UNIT=VIO,SPACE=(1024,(120,120),,,ROUND)
//SYSUT2 DD UNIT=VIO,SPACE=(1024,(120,120),,,ROUND)
//SYSUT3 DD UNIT=VIO,SPACE=(1024,(120,120),,,ROUND)
//SYSUT4 DD UNIT=VIO,SPACE=(1024,(120,120),,,ROUND)
//SYSUT5 DD UNIT=VIO,SPACE=(1024,(120,120),,,ROUND)
//SYSUT6 DD UNIT=VIO,SPACE=(1024,(120,120),,,ROUND)
//SYSUT7 DD UNIT=VIO,SPACE=(1024,(120,120),,,ROUND)
//SYSPRINT DD SYSOUT=*
//SYSUDUMP DD SYSOUT=*
/*
//**************************************************************
//LKED EXEC PGM=HEWL,COND=(4,LT,COMP),
// PARM='LIST,LET,XREF,MAP'
//SYSLIB DD DSN=CEE.SCEELKED,DISP=SHR
三 链接BDAM文件,传递变量信息
链接的过程主要是 调用系统LIB中的CEE.SCEELKED数据集中HEWL member ,PARM是EXEC语句
的键值参数,其功能主要是向本作业步执行程序传递变量信息
//SYSLIN DD DSN=&OBJ,DISP=(OLD,DELETE)
// DD DDNAME=SYSIN
COMP新建的临时数据集在LKED中的得到引用
//SYSLMOD DD DSN=EXT2238.TOM.LOADLIB,DISP=SHR
链接后产生的文件(二进制形式)存放在EXT2238.TOM.LOADLIB中,该数据集是自己建立的
//SYSUT1 DD UNIT=VIO,SPACE=(1024,(120,120),,,ROUND)
//SYSPRINT DD SYSOUT=*
NAME TSORT(R) 存放文件的member name
/*