DBCTL 错误方案
DBCTL 错误可能以多种方式发生,例如在与 DBCTL 的连接期间或 PSB 调度期间。 使用转储和跟踪消息来帮助诊断要修复的错误。
与 DBCTL 的连接未能完成
在这种情况下, DRA 可能处于等待状态,因为您尝试使用 CDBC 事务将 CICS® 连接到 DBCTL ,但连接过程未能完成。
- 在阶段 1 中, CDBC 将连接请求传递到 IMS 并返回。
- 在阶段 2 中, IMS 异步处理请求,并在连接完成时返回到 CICS 。
要发现问题发生的位置,请尝试通过执行以下任一操作来了解连接尝试的进度:
- 在 CDBC 菜单面板上按 PF2 以刷新此屏幕,如 用于连接和断开连接的 CDBC 事务中所述。
- 使用 CDBI 查询面板,如 用于查询的 CDBI 事务中所述。
- 阶段 1 无法完成
- 如果连接处于阶段 1 ,那么将发出以下消息:
DFHDB8291 正在进行中的 I DBCTL CONNECT PHASE 1
除非 CICS 事务存在问题,否则在此阶段不太可能发生等待。
- 阶段 2 无法完成
- 如果连接处于阶段 2 ,那么将发出以下消息:
DFHDB8292 正在进行中的 DBCTL CONNECT PHASE 2
如果阶段 2 未能完成,那么该故障将与 IMS相关联。 以下是导致此故障的一些可能原因:- DRA 启动表指向错误的系统,因为 DBCTL 子系统标识不正确。 如果是这样, CICS 将发出一条 WTO 消息:
SUBSYSTEM xxxx 不活动。 应答等待或取消
其中 xxxx 是 CDBC 面板上指示的子系统标识。有关指定 DBCTL 子系统标识的信息,请参阅 定义 IMS DRA 启动参数表 。
- DBCTL 已初始化,但未发出重新启动命令。 请记住,除非使用 AUTO 启动,否则 DBCTL 需要重新启动命令。 请参阅 连接至 DBCTL: 概述 和 重新启动 DBCTL ,以获取有关重新启动 DBCTL 的信息以及有关不同重新启动选项的含义的信息。
- DRA 启动表指向错误的系统,因为 DBCTL 子系统标识不正确。 如果是这样, CICS 将发出一条 WTO 消息:
- 如果这两种情况都不适用
如果这两种情况都不适用,那么问题在 IMS中。 请参阅 IMS 产品文档中的诊断 以获取进一步的指导信息。
有关 CICS 为成功连接到 DBCTL 而生成的跟踪条目的示例,请参阅 示例: 在 CICS 连接到 DBCTL 时生成的跟踪条目。
无法完成与 DBCTL 的断开连接
DRA 可能处于等待状态,因为您尝试使用 CDBC 事务从 DBCTL 断开 CICS 的连接,但断开连接过程未能完成。
有关 CICS 为成功断开与 DBCTL 的连接而生成的跟踪条目的示例,请参阅 示例: CICS 断开与 DBCTL 的连接时生成的跟踪条目。
使用 CDBC 与 DBCTL 断开连接时,它会调用另一个 CICS 事务 CDBT。 CDBT 向 DBCTL 发出断开连接请求,并在 DBCTL 异步处理请求时被 CICS 暂挂。
如果断开连接无法完成,您可以使用 CEMT INQ TASK 来查询 CDBT ,以了解断开连接的进度。 您可能会发现 CDBT 正在等待资源名称 DLSUSPND 和资源类型 DBCTL ,这意味着 DBCTL 正在处理请求。 有关说明的示例,请参阅 清除正在使用 DBCTL 的事务中 CEMT INQ TASK 的描述。
- 如果您请求有序断开连接,那么 DBCTL 可能正在等待发出许多 DL/I 请求的任务,或者正在等待会话式任务 (可能正在等待来自无人照管终端的输入)。
如果需要,您可以通过请求立即断开连接来覆盖有序断开连接,在这种情况下,进程应立即结束。 但是,请注意,立即断开连接可能会导致不确定的 UOW ,并使使用该 DBCTL 的其他 CICS 系统无法使用数据库记录,直到重新连接为止,如 决定是使用有序还是立即断开连接中所述。
- 如果您请求立即断开连接,但尚未执行此操作,那么可能已在 IMS 中发生意外等待。 有关进一步的指导信息,请参阅 IMS 产品文档中的诊断。
如果 CDBT 未在等待 DLSUSPND ,那么这指示 CICS中存在问题。
如果在 DBCTL 终止后 CDBT 未自动结束,那么您可以作为最后手段尝试强制清除事务。
PSB 调度期间发生故障
- 使用
/DISPLAY PROGRAM psbname来检查应用程序控制块 (ACB) 是否有效。状态
无效
表示在 IMS 系统生成期间未定义 PSB。 状态notinit
表示 ACB 不在 ACBLIB 中。 状态stopped
表示错误已导致 DBCTL 停止 PSB ,或者已对 PSB 发出了 /STOP 命令。 请调查此错误的原因。 解决问题后,请使用/START PROGRAM psbname再次启动 PSB。 - 使用
/DISPLAY DATABASE dbname来检查数据库是否有效。
有关 CICS 在 PSB 调度期间 (成功和失败) 生成的跟踪条目的示例,请参阅 示例: 为成功的 PSB 调度生成的跟踪条目 和 示例: 为失败的 PSB 调度生成的跟踪条目。
DL/I 请求处理期间失败
DRA 可能会进入等待状态,因为您有一个 CICS 任务处于等待状态。
如果某个任务显示为挂起,请使用 CEMT INQ TASK(对于任何 CICS 任务) 对其进行查询。 如果任务正在等待资源名称 DLSUSPND 和资源类型 DBCTL ,那么该任务已发出 DL/I 请求,并且在请求 DBCTL 服务时已在 CICS 中暂挂。 如果重复使用 CEMT INQ TASK 显示任务仍在等待 DLSUSPND ,那么它已在 DBCTL 中挂起。 如果要清除该任务,那么必须使用 DBCTL 操作员命令来执行此操作。 请参阅 清除正在使用 DBCTL 的事务 ,以获取以这种方式使用 CEMT INQ TASK 和相关 DBCTL 操作程序命令的说明示例。
如果任务未在 DLSUSPND 上等待,那么这可能指示 CICS中存在问题。
有关 CICS 在 DL/I 请求处理期间生成的跟踪条目的示例,请参阅 示例: 针对 DL/I 请求生成的跟踪条目。 有关 DBCTL 在 DL/I 请求处理期间生成的跟踪条目的示例,请参阅 DBCTL 生成的跟踪条目。