加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

解析编译COBOL的JCL代码

(2010-06-02 16:23:22)
标签:

jcl

it

//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     

名为SYSINDD语句是引入COBOL程序存放的datasetmember ,其状态是share             

//SYSLIB   DD  DSN=CEE.SCEELKED,DISP=SHR    

这是系统的LIB,当程序执行PGMIGYCRCTL时,先到STEPLIB指定的数据集COBOL.V2R1M0.SIGYCOMP中查找,如果该数据集中没有IGYCRCTL member时,就到SYSLIB指定

CEE.SCEELKED数据集中查找 IGYCRCTL member                        

//SYSLIN   DD DSN=&OBJ,SPACE=(3040,(40,40),,,ROUND),UNIT=VIO,          

//            DISP=(MOD,PASS),                                         

//            DCB=(BLKSIZE=3040,LRECL=80,RECFM=FBS,BUFNO=1)        

创建的临时数据集,存储时所用的单元不是TRKCYL,而是块长作为存储单元,所以space

字参数用到ROUND,如果存储用TRKCYL为存储单元时,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

链接的过程主要是 调用系统LIB中的CEE.SCEELKED数据集中HEWL member  PARMEXEC语句

的键值参数,其功能主要是向本作业步执行程序传递变量信息                         

//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                                                   

/*      

只是自己的见解,有什么不足的地请大家提出,谢谢!                                                               

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有