我使用EXEC程序控制命令,链接,XCTL和返回,以传递数据之间的Cobol程序。在我的一次处理中,CICS共享内存被破坏了。似乎已通过的COMMAREA覆盖了不属于CICS的内存。要找出出现此问题的原因,我需要更好地了解当我使用EXEC CICS程序控制命令时CICS如何管理共享内存。它是复制COMMAREA还是使用指针?使用嵌套的EXEC CICS,有多少COMMAREA存储在共享内存中?
配置: i使用Microfocus编译器,环境为UniKix。
PS :如果您知道更多关于使用EXEC重写的知识,请检查这个问题What can cause CICS transaction to write out of CICS allocated memory?。
发布于 2012-01-26 20:05:30
不确定Net,但在CICS中使用指针访问逗号区域。
因此,如果程序x LINKS对y编程,对y中的逗号区域所做的任何更新都将在x中可见。
如果y中的commarea定义大于x中的定义,我会变得更糟--您可以在逗号区域之后更新变量。
对于XCTL,逗号区域将被复制到CICS控制区,并将一个指针传递给程序。
https://stackoverflow.com/questions/9007731
复制相似问题