文件控制状态样本出口程序:DFH$REQC

DFH$REQC 是用于文件控制状态程序的样本全局用户出口程序。 它旨在于 XFCSREQC 出口处调用。 DFH$REQC 允许您在对文件请求执行操作后检查 VSAM 错误标记,并(可选)将消息和数据区域写入系统控制台或瞬时数据队列。

关于 DFH$REQC

DFH$REQC 为文件控制状态程序全局用户出口 XFCSREQC 提供样本处理。 如果在 XFCSREQC 出口点启用了出口程序,那么将在对文件 ENABLE , DISABLE , OPEN , CLOSE 或 CANCEL CLOSE 请求执行操作后调用该出口程序。

有关使用样本程序的更多信息,请参阅 DFH$REQC 源代码中的注释。 总之, DFH$REQC 执行以下处理:

  1. 检查是否已对 VSAM 数据集的打开请求执行操作,以及 ACB 错误标志 (ACBERFLG) 是否非零。
  2. 如果全部为 true ,那么执行缺省处理。 检查 ACBERFLG 错误代码。 如果它等于 X'74',那么以下消息和数据区将以符合 WRITE OPERATOR 命令的编辑规则的方式构建到 690 字节的连续存储器中:
    消息
    发生 VSAM 打开错误-VSAM 错误标志 X'nn '

    ACBERFLG 错误代码从十六进制转换为字符格式,并附加到消息末尾。

    访问方法控制块 (access method control block , ACB)
    数据以 "ACB" 捕眼器开头。 将 ACB 中的所有数据转换为字符格式,并添加到眼睛捕捉器之后。
    EXEC 接口块(EXEC interface block,EIB)
    数据以 "EIB" 捕眼器开头。 EIB 中的所有数据都将转换为字符格式,并添加到眼睛捕捉器之后。
    传递到出口程序的参数列表
    数据以 "PLIST" 眼睛捕获器开头。 只有特定于出口的参数才会转换为字符格式并添加到眼睛捕捉器之后。
    文件信息
    数据以 "FINFO" 眼睛捕捉器开头。 后跟与该文件关联的数据集的 8 字符文件名和 44 字符 dsname ,如 DFHUEFDS DSECT 中的 UEFLNAME 和 UEDSNAME 字段所述。
  3. 发出 WRITE OPERATOR 命令以将在 690 字节存储器中创建的数据写入系统控制台。
  4. 在寄存器 15 中返回正常响应 0。

样本程序包含用于将写入缺省处理路径的相同消息和数据区写入瞬时数据队列的逻辑。 在这种情况下,会将输出编辑为 132 个字节的行。 每行在已满时写入,此时 (或根据请求) 将启动新的数据区或消息。

此外,程序逻辑允许测试其他 VSAM 错误代码。 可以执行这些操作以遵循程序中的现有路径,或者进行定制以使用已定义的消息集和数据区的全部或部分。 或者,可以定制样本程序以扩展所写入的消息集和数据区。