大型机CEE3DD挂起-CEE3501S-在COBOL动态调用中找不到模块

时间:2018-07-18 03:55:14

标签: cobol mainframe cics

我最近在处理CICS交易时遇到问题。我的CICS事务正在调用动态链接的COBOL模块链。将PGM-A负载新复制到该区域后,事务第一次运行良好。当我尝试第二次处理该事务时,我不断出现CEE3DD异常,表明PGM-B找不到该模块,该模块正在从PGM-A调用。如果我在CICS中为PGM-A制作了一个新副本,则该事务再次运行正常。

CICS设置或内存出了点问题,但我无法弄清楚。 PGM-A在批处理中运行良好。从PGM-A以外的任何其他PGM调用PGM-B都没有问题。 有人可以对这可能出什么问题分享一些想法吗?

3 个答案:

答案 0 :(得分:3)

要通过CICS调用程序,必须使用NODYNAM选项进行编译。

诚然,这似乎违反直觉,但是使用DYNAM选项将导致加载CICS stubs ,而不是预期的程序,并导致CEE3501S条件。

因此,请使用NODYNAM选项编译程序,以避免出现这种错误情况。

有关其他信息,请参见以下链接:

https://www.ibm.com/support/knowledgecenter/en/SSGMCP_5.3.0/com.ibm.cics.ts.applicationprogramming.doc/topics/dfhp3_cobol_subprog_rules.html

http://www-01.ibm.com/support/docview.wss?uid=swg21054079

答案 1 :(得分:1)

PGM-A是否使用“调用变量”来调用PGM-B?如果是这样,请在第二次运行中检查VARIABLE的内容(该变量的内容可能会在错误消息中报告。该变量的内容可能会被PGM-A中的错误覆盖。这可能解释了为什么该程序始终失败的原因在(看似)成功运行之后,并且经过了新的复制。

答案 2 :(得分:0)

将其从动态转换为静态即可。但是问题仍然是为什么它不能用于动态链接。