系统恢复程序出口 XSRAB

出口 XSRAB 是在系统恢复程序 (DFHSRP) 在系统恢复表 (SRT) 中找到操作系统异常终止代码的匹配项时调用的。

调用时机
当系统恢复程序 (DFHSRP) 在 SRT 中找到操作系统异常终止代码的匹配项时,将调用出口 XSRAB。 有关在 SRT 中定义条目的信息,请参阅 系统恢复表 (SRT)

仅当在 CICS® 基本TCB(即QR、RO、CO、SZ、RP或FO)下发生 MVS 异常终止时,才会处理SRT表并驱动退出。 对于非必需的TCB类型(如 L8、SL、SO或 S8 ),该出口不被驱动。

特定于出口的参数
UEPERROR
错误数据结构 SRP_ERROR_DATA 的地址,其中包含以下字段:
SRP_错误类型
4 字符错误类型,始终为 ASRB。
系统字符集代码
包含二进制格式的系统异常终止代码 XXX 的 2 字节 (例如, D37)。
SRP_用户_ABC代码
包含二进制格式 (例如 0999) 的用户异常终止代码 NNNN 的 2 字节。
SRP_错误_交易ID
4-包含异常终止的事务的标识的字符字段。
SRP_错误堆栈名称
8-包含异常结束时事务的当前内核堆栈条目的名称的字符字段。
SRP_ERROR_PPT_NAME
8-包含事务的当前程序名称的字符字段。 仅当设置了标志 SRP_PPT_ENTRY 时,此字段才包含值。
SRP_错误偏移量
包含异常终止的程序中的偏移量的全字,如下所示:
  • 如果设置了标志 SRP_PPT_ENTRY ,那么在 SRP_ERROR_PPT_NAME 中提供偏移量
  • 否则,请在 SRP_ERROR_STACK_NAME 中提供偏移量。
仅当设置了标志 SRP_VALID_OFFSET 时,此字段才包含值。
SRP_ERROR_标志
包含标志的 1 字节:
SRP_CICS_CODE
运行 CICS 代码时发生异常终止。
SRP_用户代码
运行用户应用程序代码时发生异常终止。
SRP_PPT_条目
运行 SRP_ERROR_PPT_NAME 时发生异常终止。 如果未设置此标志,那么在运行 SRP_ERROR_STACK_NAME 时发生异常终止。
SRP_有效偏移量
可以确定有意义的偏移量。
SRP_有效原因
MVS 已为异常终止提供了一个原因代码。
SRP_非CICS资源库
在发生异常终止时, CICS RB 不受控制 (即,在 CICS调用的系统服务中发生异常终止)。
SRP_CICS_错误原因
包含 MVS 异常终止原因代码的4字符字段。 仅当设置了标志 SRP_VALID_REASON 时,它才包含值。
SRP_CICS_错误数据
描述 CICS 在异常终止之前执行的最后一项操作的区域。 它包含以下内容:
SRP_CICS_EC_PSW
8-包含扩展控制 (EC) 方式程序状态字 (PSW) 的字符字段
SRP_CICS_PSW16
包含 128 位 PSW 的 16 字符字段
SRP_CICS_EC_INT
8-包含中断代码和 ILC 的字符字段
SRP_CICS_注册
包含通用 (GP) 寄存器内容的 64 字符字段
SRP_CICS_执行密钥
包含 PSW 密钥的 1 字节,格式为 X'0n'
SRP_系统错误数据
描述系统在异常终止之前所做的最后一件事的区域。 它包含以下内容:
SRP_系统_EC_PSW
8-包含 EC 方式 PSW 的字符字段
SRP_SYSTEM_PSW16
包含 128 位 PSW 的 16 字符字段
SRP_系统_EC_整数
8-包含中断代码和 ILC 的字符字段
SRP_系统注册表
包含 GP 寄存器内容的 64 字符字段
SRP_系统执行密钥
包含 PSW 密钥的 1 字节,格式为 X'0n'
SRP_错误_浮点寄存器
描述异常结束时浮点寄存器的内容的区域。 它包含:
SRP_FP_REG_0
FP 寄存器 0
SRP_FP_REG_2
FP 寄存器 2
SRP_FP_REG_4
FP 寄存器 4
SRP_FP_REG_6
FP 寄存器 6
SRP_附加注册信息
包含其他寄存器信息的区域。
SRP_附加寄存器标志
包含标志的 1 字节:
SRP_CICS_GPR64_AVAIL
64 位 CICS GP 寄存器可用。
SRP_SYSTEM_GPR64_AVAIL
64 位系统 GP 寄存器可用。
SRP_附加_FPR_可用性
还提供了其他 FP 寄存器。
SRP_CICS_GP64_REGS
在异常结束时包含 CICS 64 位 GP 寄存器的 128 字节区域。
SRP_SYSTEM_GP64_REGS
在异常结束时包含系统 64 位 GP 寄存器的 128 字节区域。
SRP_附加FPR寄存器
在异常结束时包含其他 FP 寄存器的 132 字节区域。
SRP_FP_REGS
在异常结束时包含所有 FP 寄存器的 128 字节区域。
SRP_FPC_注册
4-在异常结束时包含 FPC 寄存器的字节字段。
SRP_VR_注册
在异常结束时包含所有向量寄存器的 512 字节区域。

如果标志位SRP_NOT_CICS_RB被设置,则SRP_CICS_ERROR_DATA描述 CICS 在异常终止前执行的最后操作,而SRP_SYSTEM_ERROR_DATA描述系统服务(例如 z/OS® Communications Server、VSAM或 MVS )执行的最后操作。

您可以使用 DFHSRED TYPE=DSECT 宏来映射传递到 XSRAB 出口的 SRP_ERROR_DATA。 SRP_ERROR_DATA 的格式显示在 SRED-System recovery error data中。

返回码
UERCNOCA
异常终止任务,异常终止代码为 ASRB。 请勿取消与此任务关联的任何程序级异常终止出口。
UERCCANC
异常终止任务,异常终止代码为 ASRB。 取消与此任务关联的任何程序级异常终止出口。
UERCCICS
异常终止 CICS。
XPI 调用
由于 CICS 在错误环境中调用出口 XSRAB ,因此只能使用一部分 XPI 调用。

只有 TRACE_PUT 可供一般使用。

您可以使用 WAIT_MVS ,但只有在出口程序 (从 SRP_CICS_CODE 和 SRP_USER_CODE 字段中) 确定异常结束发生在用户应用程序代码中,而不是在 CICS 代码中。

API 和 SPI 调用
不能使用任何值。
重要说明:
  • 对要在 XSRAB 出口点运行的程序进行编码时请小心。 如果出口程序导致重新输入系统恢复程序 (例如,如果发生程序检查) ,那么 CICS 将异常终止,并返回 DFHSR06xx 消息。
  • 缺省返回码为 UERCNOCA ,这将确保在出口出错时任务异常终止。
  • 在此出口点没有 UERCNORM 返回码,因为在失败后会调用该出口。
  • 出口不应设置返回码 UERCPURG。