Db2 阅读TSQ时的ASRA

Db2 阅读TSQ时的ASRA,db2,cobol,mainframe,cics,Db2,Cobol,Mainframe,Cics,我在试着阅读TSQ时被ASRA abend打断了。如果我们试图读取已删除的TSQ,是否会发生ASRA?所有可能的原因是什么?ASRA有点像一个包罗万象的错误,表示CICS识别了一个程序检查状态并为您结束了事务。它可能是任何东西。您可以从CICS启动任务及其日志中,或从您安装的任何异常终止报告产品中获得更多详细信息 但是,如果您在使用INTO(varname)选项执行READQ TS时获得ASRA,请确保您拥有varname的存储,并且长度足以容纳队列中可能最大的记录 此外,如果使用“长度”选项,

我在试着阅读TSQ时被ASRA abend打断了。如果我们试图读取已删除的TSQ,是否会发生ASRA?所有可能的原因是什么?

ASRA有点像一个包罗万象的错误,表示CICS识别了一个程序检查状态并为您结束了事务。它可能是任何东西。您可以从CICS启动任务及其日志中,或从您安装的任何异常终止报告产品中获得更多详细信息

但是,如果您在使用INTO(varname)选项执行READQ TS时获得ASRA,请确保您拥有varname的存储,并且长度足以容纳队列中可能最大的记录

此外,如果使用“长度”选项,请确保设置正确。如果从TS队列向100字节区域请求32k字节,您将获得ASRA


但是以上所有这些只是其中一个可能的原因,您确实需要确定您得到的是哪种类型的ASRA。

如果临时存储队列已被删除,您不应该得到ASRA,而应该得到一个QIDERR条件,如果不处理该条件,将得到一个不同的异常终止,即AEYH异常终止


ASRA只是S0C*abend的CICS代码,在本例中,我将假定这是S0C4或保护异常。当您尝试写入(或有时从中读取)您无权访问的存储时,会发生保护异常

你需要找出导致ASRA的原因。如果您有正在进行算术运算的数字(非二进制)数据,那么没有这些数据将导致ASRA。很多事情也是如此。您需要追踪导致异常终止的原因(您的另一个问题),这将为您提供一个良好的起点。