【发布时间】:2015-01-20 19:23:58
【问题描述】:
在这两个示例中,程序 A 传递的 Commarea 发生了什么?
程序 A 对程序 B 执行 EXEC CICS LINK,然后程序 B 使用 GOBACK 命令
程序 A 对程序 B 执行 EXEC CICS LINK,然后程序 B 使用 EXEC CICS RETURN 命令
【问题讨论】:
-
我觉得您对这些问题有一些疑问。如果你不能通过这个得到答案,也许直接问。
在这两个示例中,程序 A 传递的 Commarea 发生了什么?
程序 A 对程序 B 执行 EXEC CICS LINK,然后程序 B 使用 GOBACK 命令
程序 A 对程序 B 执行 EXEC CICS LINK,然后程序 B 使用 EXEC CICS RETURN 命令
【问题讨论】:
见https://stackoverflow.com/a/28056695/1927206。
commarea 没有任何反应。
如果 B 改变它,它改变了 A 知道的存储。
只有数据的地址在程序之间“传递”。只有原始数据存在,程序 B 操作原始数据。 CALLing 和 CALLed 程序之间没有数据复制。
与数据(无)发生的情况分开,您展示的两个示例具有相同的行为。为您的站点使用当地标准。
【讨论】:
GOBACK 是在被调用程序中使用的较旧的 COBOL 构造。 EXEC CICS RETURN 将控制权交给 CICS。 CICS 决定接下来要控制哪个程序。
【讨论】: