使用 DB2 软件包

使用程序包是确保 CICS® 事务与 DB2® 计划之间的关系易于管理的最佳方法。

在 DB2 的早期发行版中,在软件包可用之前,必须将可以在特定 CICS 事务下运行的所有程序中的 DBRM 直接绑定到单个计划中。 更改计划中的一个 DBRM (因为该程序的 SQL 调用已更改) 需要重新绑定计划中的所有 DBRM。 绑定大型计划可能非常慢,并且整个事务在操作期间不可用于处理。 对于高度使用的应用程序而言,仅仅停顿应用程序可能非常困难,但在重新绑定时将计划长时间停止使用通常是不可接受的。

动态计划出口是旨在解决此问题的临时解决方案。 动态计划出口是您在 DB2CONN 或 DB2ENTRY 定义中指定的出口程序,而不是指定计划名称。 您为 CICS 应用程序创建许多小型计划,每个计划都包含来自几个程序的 DBRM ,并且出口程序在每个工作单元开始时选择正确的计划。 您还可以使用动态计划出口在事务中的计划之间进行切换。 但是,每次 SQL 语句在使用它的某个程序中发生更改时,仍必须重新绑定每个小计划并使其不可用。 此外,使用动态计划切换需要隐式或显式的 CICS SYNCPOINT 来允许在计划之间进行切换。

现在,软件包在 DB2 中可用,使用它们是管理套餐的最佳方法。 通过包,您可以将程序单元分解为更小的部分,您可以单独重新绑定这些部分,而不会影响整个计划,甚至会影响正在重新绑定的特定包的当前用户。

由于使用软件包更容易更新套餐,因此您可以构建更大的应用程序,而无需切换事务,程序或套餐以适应 DB2 性能或可用性。 这也意味着您不必维护那么多 RDO 定义。 您还可以避免在其他情况下使用动态 SQL 来获得程序灵活性的情况。 在套餐中,您甚至可以指定尚不存在的包,或者指定可以向其添加包的包集合。 这意味着可以在完全不干扰现有计划的情况下添加来自新程序的 DBRM。

包和计划上用于引用不同表集的限定符选项可以使您更灵活地避免计划切换。

总之,软件包:
  • 在与 STARTLINKRETURN TRANSID 逻辑链接在一起并将 DBRM 绑定在一起以减少 DB2ENTRY 定义的程序的绑定期间,尽量减少计划中断时间,处理器时间和目录表锁定。
  • 减少 CICS STARTS 或退出。
  • 避免克隆 CICS 和 DB2ENTRY 定义。
  • 提供将计划与空包绑定以稍后包含在计划中的能力。
  • 允许您在执行时使用 SET CURRENT PACKAGESET = variable 指定集合,这是与 QUALIFIER 配合使用时的强大功能
  • 提供 QUALIFIER 参数,这将使您能够灵活地执行下列操作:
    • 允许您使用未限定的 SQL 来引用不同的表集
    • 减少对同义词和别名的需求
    • 减少了对动态 SQL 的需求
使用软件包可以在 CICS 环境中提供其他优点:
  • 它允许您使用较少的计划。
  • 它允许您将低使用率事务绑定到单个套餐中。
  • 这将增加线程复用潜力。

您还可以通过使用对其条目进行排序以缩短搜索时间的程序包列表或将程序包列表条目保持在最小范围来优化应用程序。

DB2 还提供程序包级别的记帐。 有关软件包的更多信息,请参阅有关规划绑定和准备应用程序以在 Db2 for z/OS 产品文档中的 " Db2 for z/OS 编程" 和 IBM® Redbooks® 出版物 DB2 9 for z/OS® : 已重新访问软件包 中运行的讨论。