我有一个cobol批处理程序,它使用CICS LINK通过EXCI调用CICS程序。 CICS程序调用Web服务并将结果解析为副本,然后在LINKAGE SECTION的commarea中传回。
一切似乎工作正常,批处理程序需要这些数据,但是当检查EXCI响应代码时,我有一个ASRA异常终止。 CICS日志报告以下
DFHAC2236 Transaction CSMI abend ASRA in program IOCCBR term RG1. Updates to local recoverable
resources will be backed out.
我一直在研究DFH ***代码和ASRA,但没有找到答案。转储不是公司的常见做法,但我确实有可用的异常终止。
EXEC CICS LINK PROGRAM('IOCCBR')
APPLID('PRODAOR1')
LENGTH(LENGTH OF WS-COMMAREA)
COMMAREA(WS-COMMAREA)
RETCODE(WS-EXCI-EXEC-RETURN-CODE)
SYNCONRETURN
END-EXEC.
任何想法都会非常感激。谢谢
答案 0 :(得分:0)
我相信您必须在LINK中指定PROGRAM和TRANSID,并且必须将指定的TRANSID定义为CICS执行DFHMIRS,PROGRAM是您要执行的程序。
答案 1 :(得分:0)
经验教训,批处理程序是由其他人编写的,批处理的commarea比cics程序返回的要少。
我的同事有一个108的逗号,刚好足以传递字帖信息,我的CICS程序有2750的LINKAGE SECTION commarea,因为我重用了另一个EXCI / INVOKE WEBSERVICE程序的代码。我相信这就是为什么它在返回时出现了但数据存在的原因,我正确地填写了108个字节,但是它无法处理在他的WS commarea中被推送的额外2642个字节