执行静态调用COBOL/DB2子程序的COBOL程序所涉及的步骤

8e2ybdfx  于 2022-11-07  发布在  DB2
关注(0)|答案(1)|浏览(220)

我有一个纯COBOL的主程序和一个COBOL-DB2子程序。我用cobol-db2编译器编译了这两个程序,返回代码是4(仅提供信息性警告)。然后,我将它们绑定在一起。现在,我尝试使用JCLDB 2执行主程序,但是,它似乎不能调用子程序,甚至不能执行run步骤。这是我的JCLDB 2,用来运行调用subprog的mainprog:

//GO       EXEC PGM=IKJEFT01,DYNAMNBR=20,REGION=4M,COND=(4,LT)  
//STEPLIB  DD   DSN=DSN910.DB9G.RUNLIB.LOAD,                    
//         DISP=SHR                                             
//         DD   DISP=SHR,DSN=DSN910.DB9G.SDSNEXIT               
//         DD   DISP=SHR,DSN=DSN910.SDSNLOAD                    
//         DD   DISP=SHR,DSN=ISP.SISPLOAD                       
//         DD   DISP=SHR,DSN=GDDM.SADMMOD                       
//SYSOUT   DD   SYSOUT=*                                        
//SYUDUMP  DD   SYSOUT=*                                        
//CEEDUMP  DD   SYSOUT=*                                        
//TRANFILE DD   DSN=PROJECT.ABC.TRANKSDS,DISP=SHR              
//MGMTREPT DD   DSN=PROJECT.ABC.MGMTREPT,                      
//         UNIT=SYSDA,DISP=(NEW,CATLG),                         
//         SPACE=(32,(3,3)),                                    
//         DCB=(RECFM=FB,LRECL=81,BLKSIZE=81)                         
//SYSPRINT DD   SYSOUT=*                       
//SYSTSPRT DD   SYSOUT=*                       
//SYSTSIN  DD   *                              
  DSN SYSTEM(DB9G)                             
  RUN PROGRAM(ABCREPRT) PLAN(DSNTIA91)         
  END                                          
/*

那么这就是JCL的SDSF,返回代码= 0:

NP   DDNAME   StepName ProcStep DSID 
      JESMSGLG JES2                 2 
      JESJCL   JES2                 3 
      JESYSMSG JES2                 4

如果执行成功,GO步骤名称是否也应该出现?

dfddblmv

dfddblmv1#

如果该步骤确实开始了,我至少会在//SYSTSPRT上看到一条READY消息。因此,是的,该列表中应该有一个SYSTSPRT的条目。您是否查看了SDSF中的OUTPUT队列,以查看作业的某些输出是否进入了此队列,而不是HOLD队列?
您可以将//SYSTSIN中的DSN ... END序列替换为某个TSO命令,例如LISTA,然后查看是否会产生一些输出。

相关问题