1

我使用 EXEC CICS 程序控制命令、LINK、XCTL 和 RETURN 来在 Cobol 程序之间传递数据。在我的一次治疗中,CICS 共享内存损坏了。似乎通过 COMMAREA 覆盖了不属于 CICS 的内存。为了找出这个问题发生的原因,我需要更好地了解当我使用 EXEC CICS 程序控制命令时 CICS 如何管理共享内存。它是复制 COMMAREA 还是使用指针?使用嵌套的 EXEC CICS,共享内存中存储了多少 COMMAREA?

配置:我使用 Microfocus Net Express 编译器,环境是 UniKix。

PS:检查这个问题什么会导致 CI​​CS 事务写出 CICS 分配的内存?如果您了解更多关于使用 EXEC CICS 覆盖的信息。

4

1 回答 1

2

不确定 Net Express,但在 CICS 中,逗号是使用指针访问的。

因此,如果编程 x 链接到编程 y,对 y 中的 commarea 所做的任何更新都将在 x 中可见。

如果 y 中的 Commarea 定义大于 x 中的定义,我会变得更糟——你可以在 commarea 之后更新变量。

对于 XCTL,commarea 将被复制到 CICS 控制区域并将指针传递给程序

于 2012-01-26T20:05:30.627 回答