编写 CICS-DBCTL 接口状态程序

CICS®-DBCTL 接口状态程序 DFHDBUEX 是用户可替换程序,构成对 CICS-DBCTL 接口的支持的一部分。 它设计为每当 CICS 成功连接到 DBCTL 或从中断开连接时调用用户提供的代码。 它在 CICS 应用程序环境中运行,并在特定点驱动,以允许您在 CICS-DBCTL 接口初始化或终止时启用和禁用自己的 CICS-DL/I 事务。

对于 ENABLE 命令,将在以下情况下调用 DFHDBUEX:
  • CICS 已成功连接到 DBCTL。 这是在从 CICS 向 DBCTL 发出连接请求之后发生的。 控制出口 (DFHDBCTX) 由数据库资源适配器 (DRA) 针对 "初始化完成" 调用。 控制出口发布控制事务 (CDBO)。 然后,控制程序 (DFHDBCT) 调用 DFHDBUEX。
在以下情况下,将针对 DISABLE 命令调用 DFHDBUEX:
  • 已发出从 DBCTL 断开连接的请求。 CICS-DBCTL 菜单程序 (DFHDBME) 启动断开连接事务 (CDBT) 以与 DBCTL 断开连接。 断开连接程序 (DFHDBDSC) 在向适配器发出接口终止请求之前调用 DFHDBUEX。
  • 控制事务 (CDBO) 已收到下列其中一个事件的通知:
    • 对 DBCTL 的检查点冻结请求
    • DRA 异常终止
    • DBCTL 异常终止。
    在上述每种情况下,控制程序 (DFHDBCT) 都会调用 DFHDBUEX。
DFHDBUEX 的输入是通过 DFHEICAP 寻址的通信区域进行的。 通信区域的布局如 图 1所示。
图 1。 DFHDBUEX 通信区
DBUSHEAD    DS      OCL4              Standard Header
DBUREQT     DS      CL1               Function Code
DBUCOMP     DS      CL2               Component Code         Always "DB"
DBURESV     DS      CL1               Reserved
DBUREAS     DS      CL1               Reason for disconnection
DBUSUFF     DS      CL2               DRA startup table suffix
DBUDBCTL    DS      CL4               DBCTL identifier
参数列表包含以下信息:
DBUREQT
请求类型。 函数代码具有下列其中一个值:
DBUCONN (X'01 ')
已连接
DBUDISC (X'02 ')
已断开连接。
DBUREAS
断开连接的原因。 包含标志:
DBUMENU (X'01 ')
已从菜单断开连接
DBUDBCC (X'02 ')
DBCTL 的检查点冻结输入
DBUDRAF (X'03 ')
DRA 发生故障
DBUDBCF (X'04 ')
发生 DBCTL 故障。
DBUSUFF
DRA 启动表后缀。
DBUDBCTL
DBCTL 标识。