Db2 数据共享

Db2® 数据共享使在任何 CICS 应用程序拥有区域中运行的 CICS® 事务能够访问相同的共享 Db2 数据。

DB2CONN 定义包含 Db2 子系统的名称或 CICS 连接到的 Db2 数据共享组的组名。 使用组名 (而不是特定子系统名称) 使综合系统中任何系统上的 CICS 区域能够连接到数据共享组中同一 LPAR 中运行的任何 Db2 。 这将利用 z/OS® 耦合设施中定义的 Db2 结构。 Db2 数据共享组由多个 Db2 数据管理器组成,这些数据管理器都可以访问相同的表。 数据管理器可以在相同或单独的 z/OS 逻辑分区中运行。 这种运行方式允许 CICSPlex ® 的各个区域在相同的 Db2 表中共享数据。

数据共享组提供了可用性优势,因为该组中的其他数据管理器可以在该组中的数据管理器发生故障时提供对数据的持续访问。

称为 Db2 组连接的设施可提供额外的可用性优势:
  • 如果没有 Db2 组连接,那么每个 CICS 区域都配置为使用指定的 Db2 数据管理器。
  • 通过 Db2 组连接,每个 CICS 区域都配置为使用数据共享组中的任何数据管理器,尽管您需要考虑 Db2 INDOUBT 解决方案。
Db2 数据共享组支持使您能够以各种方式配置 CICSPlex:
  • 每个逻辑分区中都有一个数据管理器,没有 CICS Db2 组连接。

    分区中的所有 CICS 区域都连接到其指定的 Db2 数据管理器。 该 Db2 管理器必须在同一逻辑分区中运行。

  • 每个逻辑分区中的一个数据管理器,带有 CICS Db2 组连接。

    分区中的所有 CICS 区域都连接到在同一逻辑分区中运行的任何 Db2 数据管理器。 此配置与先前配置类似,只是一个分区中的 CICS 区域可能会失败,然后在同一数据共享组中有数据管理器的任何分区中重新启动。 它可以使用数据共享组中的任何数据管理器来访问 Db2 数据。

  • 每个逻辑分区中有多个数据管理器,带有 CICS Db2 组连接。
    分区中的每个 CICS 区域都会连接在同一逻辑分区中运行的任何一个 Db2 数据管理器。 此配置与先前配置类似,但在以下情况下除外:
    • 当一个分区中的 CICS 区域发生故障,然后在同一区域中重新启动时,它可能会连接到另一个 Db2 数据管理器。 此步骤可能会延迟不确定恢复单元的解析。
    • 当一个分区中的 Db2 数据管理器发生故障时,该分区中的 CICS 区域可以连接到同一分区中的另一个数据管理器,并继续访问 Db2 数据。

如果 CICS 失去与它所连接的 Db2 的连接,并且它具有正在使用该 Db2的 INDOUBT 工作单元,那么它会尝试重新连接到该 Db2。 但是,即使它在其初始重新连接尝试中未成功,它也会记住它具有与该 Db2一起使用的未完成的工作单元。 如果 CICS 区域稍后重新启动 (或者如果 Db2 连接已停止并重新启动) 并且 Db2 可用,那么 CICS 会自动重新连接到该区域 (前提是 CICS 与 Db2 子系统位于同一 z/OS 系统上) , 即使该系统上存在来自同一数据共享组的多个 Db2 子系统。

CICS 如何对与 Db2 的初始断开连接作出反应由 DB2CONN 定义上的 RESYNCMEMBER 和 STANDBYMODE 关键字控制。 CICS 始终尝试一次重新连接。 但是,如果失败,那么 CICS 将等待该 Db2 再次变为活动状态,或者尝试连接到数据共享组的另一个成员 (如果与 CICS存在于同一 z/OS 系统上)。

如果在同一 z/OS 系统上的同一数据共享组中有多个 Db2 子系统,请考虑将 RESYNCMEMBER 关键字设置为 NO。 这意味着 CICS 区域将连接到另一个 Db2 ,并且能够继续处理 Db2 事务。 INDOUBT 工作单元仍未完成,直到 CICS 重新连接到原始 Db2后才会解析。 但是,您可以在方便的时候放弃 CICS 区域,然后停止并重新启动 Db2 连接,此时将解析 INDOUBT 工作单元。

要在 Db2 事务最初失去与 Db2的连接之后的时间内停止到此区域的流,请使用 CICSPlex SM ABENDTHRESH 和 ABENDCRIT 函数,如 优化工作负载路由的提示中所述。

有关 CICS 如何连接到 Db2的更多信息,请参阅 概述: CICS 如何连接到 Db2。 有关更多信息,请参阅 使用 Db2 组连接工具