我最近在处理CICS交易时遇到问题。我的CICS事务正在调用动态链接的COBOL模块链。将PGM-A负载新复制到该区域后,事务第一次运行良好。当我尝试第二次处理该事务时,我不断出现CEE3DD异常,表明PGM-B找不到该模块,该模块正在从PGM-A调用。如果我在CICS中为PGM-A制作了一个新副本,则该事务再次运行正常。
CICS设置或内存出了点问题,但我无法弄清楚。 PGM-A在批处理中运行良好。从PGM-A以外的任何其他PGM调用PGM-B都没有问题。 有人可以对这可能出什么问题分享一些想法吗?
答案 0 :(得分:3)
要通过CICS调用程序,必须使用NODYNAM
选项进行编译。
诚然,这似乎违反直觉,但是使用DYNAM
选项将导致加载CICS stubs ,而不是预期的程序,并导致CEE3501S条件。
因此,请使用NODYNAM
选项编译程序,以避免出现这种错误情况。
有关其他信息,请参见以下链接:
答案 1 :(得分:1)
PGM-A是否使用“调用变量”来调用PGM-B?如果是这样,请在第二次运行中检查VARIABLE的内容(该变量的内容可能会在错误消息中报告。该变量的内容可能会被PGM-A中的错误覆盖。这可能解释了为什么该程序始终失败的原因在(看似)成功运行之后,并且经过了新的复制。
答案 2 :(得分:0)
将其从动态转换为静态即可。但是问题仍然是为什么它不能用于动态链接。