系统恢复程序出口 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_ERROR_TYPE
4 字符错误类型,始终为 ASRB。
SRP_SYS_ABCODE
包含二进制格式的系统异常终止代码 XXX 的 2 字节 (例如, D37)。
SRP_USER_ABCODE
包含二进制格式 (例如 0999) 的用户异常终止代码 NNNN 的 2 字节。
SRP_ERROR_TRANID
4-包含异常终止的事务的标识的字符字段。
SRP_ERROR_STACK_NAME
8-包含异常结束时事务的当前内核堆栈条目的名称的字符字段。
SRP_ERROR_PPT_NAME
8-包含事务的当前程序名称的字符字段。 仅当设置了标志 SRP_PPT_ENTRY 时,此字段才包含值。
SRP_ERROR_OFFSET
包含异常终止的程序中的偏移量的全字,如下所示:
  • 如果设置了标志 SRP_PPT_ENTRY ,那么在 SRP_ERROR_PPT_NAME 中提供偏移量
  • 否则,请在 SRP_ERROR_STACK_NAME 中提供偏移量。
仅当设置了标志 SRP_VALID_OFFSET 时,此字段才包含值。
SRP_ERROR_FLAGS
包含标志的 1 字节:
SRP_CICS_CODE
运行 CICS 代码时发生异常终止。
SRP_USER_CODE
运行用户应用程序代码时发生异常终止。
SRP_PPT_ENTRY
运行 SRP_ERROR_PPT_NAME 时发生异常终止。 如果未设置此标志,那么在运行 SRP_ERROR_STACK_NAME 时发生异常终止。
SRP_VALID_OFFSET
可以确定有意义的偏移量。
SRP_VALID_REASON
MVS 提供了异常终止的原因码。
SRP_NOT_CICS_RB
在发生异常终止时, CICS RB 不受控制 (即,在 CICS调用的系统服务中发生异常终止)。
SRP_CICS_ERROR_REASON
4-包含 MVS 异常终止原因码的字符字段。 仅当设置了标志 SRP_VALID_REASON 时,它才包含值。
SRP_CICS_ERROR_DATA
描述 CICS 在异常终止之前执行的最后一项操作的区域。 它包含以下内容:
SRP_CICS_EC_PSW
8-包含扩展控制 (EC) 方式程序状态字 (PSW) 的字符字段
SRP_CICS_PSW16
包含 128 位 PSW 的 16 字符字段
SRP_CICS_EC_INT
8-包含中断代码和 ILC 的字符字段
SRP_CICS_REGST
包含通用 (GP) 寄存器内容的 64 字符字段
SRP_CICS_EXEC_KEY
包含 PSW 密钥的 1 字节,格式为 X'0n'
SRP_SYSTEM_ERROR_DATA
描述系统在异常终止之前所做的最后一件事的区域。 它包含以下内容:
SRP_SYSTEM_EC_PSW
8-包含 EC 方式 PSW 的字符字段
SRP_SYSTEM_PSW16
包含 128 位 PSW 的 16 字符字段
SRP_SYSTEM_EC_INT
8-包含中断代码和 ILC 的字符字段
SRP_SYSTEM_REGST
包含 GP 寄存器内容的 64 字符字段
SRP_SYSTEM_EXEC_KEY
包含 PSW 密钥的 1 字节,格式为 X'0n'
SRP_ERROR_FP_REGS
描述异常结束时浮点寄存器的内容的区域。 它包含:
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_ADDITIONAL_REG_INFO
包含其他寄存器信息的区域。
SRP_ADDITIONAL_REGS_FLAG
包含标志的 1 字节:
SRP_CICS_GPR64_AVAIL
64 位 CICS GP 寄存器可用。
SRP_SYSTEM_GPR64_AVAIL
64 位系统 GP 寄存器可用。
SRP_ADDITIONAL_FPR_AVAIL
还提供了其他 FP 寄存器。
SRP_CICS_GP64_REGS
在异常结束时包含 CICS 64 位 GP 寄存器的 128 字节区域。
SRP_SYSTEM_GP64_REGS
在异常结束时包含系统 64 位 GP 寄存器的 128 字节区域。
SRP_ADDITIONAL_FPR_REGS
在异常结束时包含其他 FP 寄存器的 132 字节区域。
SRP_FP_REGS
在异常结束时包含所有 FP 寄存器的 128 字节区域。
SRP_FPC_REG
4-在异常结束时包含 FPC 寄存器的字节字段。
SRP_VR_REGS
在异常结束时包含所有向量寄存器的 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。