绑定应用程序包和计划

Db2 应用程序运行之前,必须将SQL语句处理器生成的DBRM绑定到一个包中。 绑定过程在应用程序及其关系数据之间建立联系。

准备工作

您必须拥有适当的权限。 欲了解更多信息,请参阅处理计划和套餐所需的权限

关于本任务

在预编译过程中, Db2 预编译器会为每个应用程序生成修改后的源代码和一个数据库请求模块(DBRM)。 修改后的源代码必须经过编译和链接编辑,才能运行程序。 DBRM必须绑定到一个软件包。 然后,您可以将此套餐与特定的应用计划关联起来。

在装订过程中, Db2 还会完成以下操作:

  • 根据 Db2 目录验证程序SQL语句中的对象引用,例如表、视图和列名。 因为绑定过程在程序执行之前发生,所以可以在程序执行之前检测并更正错误。
  • 验证绑定过程的授权,以指定程序所有者,并验证指定所有者访问程序中SQL语句所请求数据的授权。
  • 选择 Db2 访问程序数据时使用的访问路径。 Db2 在选择访问路径时,会考虑表大小、可用索引等因素。

在确定计划的最大规模时,必须考虑一些物理限制,包括绑定计划所需的时间、EDM池的大小以及碎片化。 一般来说,EDM池的大小至少应为最大DBD或计划(以较大者为准)的10倍。

您装订的每个包只能包含一个DBRM。

例外: 如果程序中唯一的 SQL 语句是 SET CURRENT PACKAGESET,则无需绑定 DBRM。

因为您不需要计划或包来执行SET CURRENT PACKAGESET语句,所以编码绑定选项不会影响SET CURRENT PACKAGESET语句。 如果应用程序需要以系统默认编码方案之外的编码方案提供宿主变量值,则必须使用 DECLARE VARIABLE 语句来指定宿主变量的编码方案。

无论计划是否引用远程运行的程序包,您都必须将其绑定到本地。 但是,您必须在远程位置绑定在远程位置运行的程序包。

对于 Db2 请求者,您可以在RUN子命令中指定计划,但不能直接运行软件包。 您必须将软件包包含在计划中,然后运行该计划。

提示 :制定命名规范和策略,以便最有效、最高效地使用您的计划和方案。

过程

要绑定应用程序,请执行以下操作。

  1. 要将单个 DBRM 绑定到包中,请使用带有 ACTION(REPLACE) 的 BIND PACKAGE 命令。 打包功能使您可以灵活地测试程序的不同版本,而无需重新绑定应用程序计划中的所有内容。

    对于其相应的 DBRM 位于 HFS 文件中的程序,您可以使用 Db2 command line processor 将 DBRM 绑定到软件包。 您也可以使用 oputoget 命令将DBRM复制到分区数据集成员中,然后使用常规JCL进行绑定。

    要为现有触发器创建新的触发器包,必须重新创建与包关联的触发器。 更多信息,请参阅触发器包

  2. 要在应用计划中指定软件包,请使用带有ACTION(REPLACE)的BIND PLAN命令。 计划可以指定套餐、套餐组合或这些元素的组合。 如果您指定一个或多个DBRM包含在计划中(通过绑定计划的会员选项), Db2 会自动将这些DBRM绑定到套餐中,然后将这些套餐绑定到计划中。 该计划包含指定软件包的信息以及应用程序打算使用的数据。 该计划保存在 Db2 目录中。