系统恢复程序出口 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_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。