【问题标题】:Steps involved to execute a COBOL program static calling a COBOL/DB2 subprogram执行 COBOL 程序静态调用 COBOL/DB2 子程序所涉及的步骤
【发布时间】:2021-10-05 07:41:02
【问题描述】:

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

//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 stepname 不应该也出现吗?

【问题讨论】:

    标签: db2 cobol jcl


    【解决方案1】:

    如果该步骤确实开始,我至少希望//SYSTSPRT 上出现READY 消息。所以,是的,该列表中应该有一个SYSTSPRT 的条目。您是否查看了 SDSF 中的 OUTPUT 队列以查看您的作业的某些输出是否进入了该队列而不是 HOLD 队列?

    您可以将//SYSTSIN 中的DSN ... END 序列替换为一些TSO 命令,例如LISTA,看看这是否会产生一些输出。

    【讨论】:

    • 现在有一个 SYSTSPRT 条目,出现就绪消息,这意味着该步骤开始对了吗?但是没有SYSOUT、SYSPRINT。我也检查了 OUTPUT 和 HELD OUTPUT QUEUE,那里什么也没有。我尝试输入 TSO 命令 LISTA,仍然没有输出。
    • //SYSTSPRT 中有一条READY 消息确实证实了IKJEFT01(即TSO)已启动。如果这是唯一的消息,它没有从//SYSTSIN 读取任何命令。您希望在//SYSOUT//SYSPRINT 上看到什么?您能否发布完整的 JCL 以及作业的完整输出?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-02
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多