我有一个cobol批处理程序,它使用CICS链接通过EXCI调用CICS程序。CICS程序调用一个webs服务并将结果解析到一个文案中,然后将其传回链接部分的逗区。
一切看起来都很好,批处理程序需要这样的数据,但是当检查EXCI响应代码时,我有一个ASRA abend。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. 任何想法都是很大的appreciated.Thanks
发布于 2013-08-21 20:02:40
经验教训是,批处理程序是由其他人编写的,批处理的逗号区域小于返回的cics程序。
我的同事的公共区域是108,刚好可以传递抄写簿的信息,我的CICS程序有2750个链接区,因为我重用了另一个EXCI/INVOKE程序的代码。我相信这就是为什么它在返回时缩小了,但是数据在那里,我正确地填写了108个字节,但是它不能处理在他的WS公共区域中插入的额外的2642字节。
发布于 2013-08-21 16:53:04
我相信您必须在您的链接中同时指定程序和TRANSID,并且必须将指定的TRANSID定义为执行DFHMIRS,程序是您要执行的程序。
https://stackoverflow.com/questions/18362891
复制相似问题