JCL是怎么调用PGM干活

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                          

/* 
  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「已注销」

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值