首页 > 解决方案 > Cobol Cics 声明后 EIBRESP 无效

问题描述

exec cics assign在 Cobol 程序中发出一条语句并获得一个不可能的响应代码。eibresp正在返回空间。我的意思是在命令的RESP子句中分配的返回值exec cics。下面的一些代码:

77  W-RESP                  PIC S9(08)  VALUE 0 COMP.   
77  W-RESP-X REDEFINES                                  
    W-RESP                  PIC  X(04).                 
77  W-RESP2                 PIC S9(08)  VALUE 0 COMP.   


EXEC CICS ASSIGN                                  
    USERID    ( W-CICS-USER     )                
    RESP      ( W-RESP         )                 
    RESP2     ( W-RESP2        )                 
END-EXEC                                          
DISPLAY CTE-PROG ' ARESP='W-RESP '/' W-RESP2 ' RESPX=' W-RESP-X               

我得到的价值W-RESP是 SPACES (X'40404040')。这是一个标准的大型机应用程序,在 IBM Zos 操作系统中运行。启动请求的程序是自然程序,在 cics 下执行。

自然课程 --> COBOL PGM 1 ---> 我的 COBOL PGM

我在网络上找不到任何解释或用户案例,尽管eibresp在任何情况下总是会返回一个有效值。

有人可以解释为什么我得到一个不可能的eibresp(空格)吗?

非常感谢。

标签: cobolcics

解决方案


每个 CICS 事务都有一个执行接口块(EIB,由 DFHEIBLK 或 DFHEIBLC 副本映射到 COBOL)。通常的做法是在 CALL 上通过 EIB。

您的程序可能有一个由 CICS 转换器在其链接部分生成的 EIB。

您指出在您的事务中执行的第一个程序是用 Software AG 的 Natural 编程语言编写的,然后它调用另一个 COBOL 程序,然后它调用您的 COBOL 程序。如果 EIB 没有被传递给您的 COBOL 程序,那可能是您的问题的根源。


推荐阅读