【问题标题】:CICS EXCI Transaction CSMI abend ASRACICS EXCI 交易 CSMI 异常终止 ASRA
【发布时间】:2013-08-24 03:32:32
【问题描述】:

我有一个 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.                           

任何想法将不胜感激。谢谢

【问题讨论】:

  • @BillWoodger 你还在寻找什么我可以“给”你的东西?我认为异常数据不会有帮助。当我使用 Expediter 时,在 goback 或 cics return 命令上会抛出异常终止。
  • 我总是忘记提及我不会以 IO 开头的程序名称,或者实际上不会以 I 开头的任何东西。与系统软件名称发生意外冲突的危险太大了。许多 IBM 的东西都是从 I 开始的,而 IO 太“明显”,与... I/O 无关。
  • @BillWoodger 我会听从这个建议,IOC 代表“信息订购中心”,我会将名称更改为一些冲突较少的名称。谢谢。

标签: cobol mainframe cics


【解决方案1】:

我认为您必须在 LINK 中同时指定 PROGRAM 和 TRANSID,并且必须将指定的 TRANSID 定义给 CICS 作为执行 DFHMIRS,PROGRAM 是您要执行的程序。

【讨论】:

  • 感谢您的回答。过去我在 CICS 上只使用 PPT 条目,而在 LINK 命令上没有 TRANSID 就完成了这项工作。我看不出和这个有什么不同。我在上面添加了我的 LINK。
  • 系统告诉我我们在这种类型的链接上使用默认通信。
【解决方案2】:

经验教训,批处理程序是别人写的,批处理的commarea小于cics程序返回的值。

我的同事的 commarea 为 108,刚好可以传递字帖信息,我的 CICS 程序的 LINKAGE SECTION commarea 为 2750,因为我重用了另一个 EXCI/INVOKE WEBSERVICE 程序的代码。我相信这就是为什么它在返回时异常但数据在那里,我正确填写了 108 个字节,但它无法处理在他的 WS commarea 中插入的额外 2642 个字节

【讨论】:

  • 您可以接受自己的答案,一旦您对它解决了您的问题感到满意。所以你发现批处理程序的 WORKNG-STORAGE 中的逗号后的东西被破坏了?
  • @BillWoodger 是的,我的同事的 commarea 为 108,刚好可以传递字帖信息,我的 CICS 程序的 LINKAGE SECTION commarea 为 2750,因为我重用了另一个 EXCI/INVOKE WEBSERVICE 的代码程序。我相信这就是为什么它在返回时异常但数据在那里,我正确填写了 108 个字节,但它无法处理在他的 WS commarea 中插入的额外 2642 个字节。共享开发带来的问题!感谢收看。
  • 优秀。如果您将评论的正文放入您的答案并接受它,它会很好地整理事情并且可以在将来帮助其他人。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-07
  • 2017-08-13
  • 1970-01-01
相关资源
最近更新 更多