出口 XFCBOUT,文件控制回退出口
当文件控制更新即将回退时,将调用 XFCBOUT。 将包含要回退的记录的前映像的日志记录传递到出口程序。
XFCBOUT 未提供返回码以允许出口程序绕过更新的回退,因为这将导致数据损坏。 但是,文件名在日志记录中,因此出口程序可以使用 EXEC CICS INQUIRE FILE 命令来获取有关该文件的信息。
- 调用时机
- 当文件控制回退更新 (由前映像日志记录表示) 时调用。
- 特定于出口的参数
- UEPFLOGR
- 要为回退提供的日志记录的文件控制部分的地址。 这是由 DSECT DFHFCLGD 映射的。
- 返回码
- UERCNORM
- 继续处理。
不允许返回码 UERCPURG。 不需要设置 UERCPURG 返回码,因为此出口是在同步点阶段 2 期间调用的,因此无法从其进行的任何调用中获取已清除的响应。
- XPI 调用
- 所有这些都可以使用,但需遵守与 API 和 SPI 调用相同的注意事项。
- API 和 SPI 调用
- 虽然允许此出口发出 API 和 SPI 调用,但您应该非常小心使用哪些命令,因为该出口是在文件回退期间调用的,这是同步点阶段 2 的一部分。建议将 EXEC CICS® 命令限制为查询,并避免使用更新 CICS 资源的命令,因为这些资源本身可能处于恢复状态。 具体来说,以下限制适用:
- 请勿发出任何可恢复操作。
- 请勿使用访问此 CICS外部的系统或资源所有者的操作,即使目标资源不可恢复也是如此。
- 请勿禁用或关闭文件,因为这可能会导致进一步的错误情况。
- 可以在与最初执行回退的更新的事务环境不同的事务环境下调用此出口。 如果出口程序想要执行任何要求它在原始事务环境下运行的操作 (例如,向终端写入消息) ,那么它必须首先检查事务管理器 INQUIRE_TRANSACTION XPI 调用的 RE_ATTACHED_TRANSACTION 参数中返回的值。
由于预期 XFCBOUT 将用于特定应用程序,因此未提供通用样本出口程序。 可以使用其他文件控制恢复出口 DFH$FCBF , DFH$FCBV 或 DFH$FCLD 的任何样本作为 XFCBOUT 出口程序的基础。