技术开发 频道

DB2 for z/OS 存储过程的二进制部署

    【IT168 技术文档】存储过程的二进制部署:历史

    在历史上,想要开发和部署 SQL 和 Java 存储过程的客户,可以通过使用 DB2 for Universal Database™ (UDB) V7 或其后继者 Development Center 中的 Stored Procedure Builder 来达到目的。这个过程需要对存储过程进行 “完全构建(full build)”,期间,在部署到数据库时,需要用到源文件。客户如果只想部署存储过程的可执行部分,可以在连接到 DB2 for Linux®, UNIX®, and Windows® V8.2 FP7 及更高版本时进行部署。但是,即使已经连接到 DB2 for z/OS,客户也只能通过手动方式来避免部署源文件。

    对于 DB2 for z/OS V9 之前的版本,DB2 for z/OS SQL 存储过程(我们称之为外部 SQL 存储过程)是使用 DSNTPSMP 实用程序来部署的。源文件和构建选项,例如 pre-compile、compile、linkedit 和 bind 选项,存储在 SYSROUTINES_SRC 和 SYSROUTINES_OPTS 这两个 DB2 编目表中。DBRM 和 linkedit 输出存储在分区数据集中,这些数据集位于 DSNTPSMP 实用程序的 JCL 的 STEPLIB 中。

    Development Center 提供了一个 DB2Build 实用程序,该实用程序在客户端执行,可用于将 SQL 存储过程部署到另一个目标 DB2 for z/OS 服务器上。但是这个实用程序还执行存储过程的完全构建,以便将源文件也放到目标服务器上。为了只将二进制文件部署到另一个不同的 DB2 for z/OS 目标上,客户必须完成一个手动的过程,IBM 红皮书 “Through the Call and Beyond” 的第 16 章第 3.1 节和第 29 章第 5.5 节对此作了描述。这个手动过程包括以下步骤:

    将 DBRM 和编译后的 SQL 模块从源服务器复制到目标服务器(例如使用 FTP)
    在目标服务器上绑定 DBRM。
    根据 SCHEMA 名称、集合 ID 和 WLM 应用程序环境的变化复制和修改 SQL 存储过程 DDL。
    执行修改后的 DDL,以编目 SQL 存储过程。
    授予存储过程上的执行权限。

    对于使用老的驱动程序(IBM DB2 JDBC/SQLJ Driver)构建的 DB2 for z/OS Java 存储过程,Development Center 调用一个 DB2 提供的存储过程 DSNTJSPP 来执行 SQLJ 存储过程的定制和绑定以及传送的服务器上的 JAR 文件的安装。在 DSNTJSPP 成功安装了 JAR 文件之后,该工具执行 CREATE PROCEDURE 来编目 Java 存储过程。这些任务都是在服务器端完成的。Development Center 中不支持使用 Java 存储过程的二进制文件进行部署。(在 Rational® Application Developer V6 的 Stored Procedure Builder 工具中提供了使用 DB2 for z/OS Java SP 的二进制进行部署的功能)。与 SQL 存储过程一样,使用 Java 存储过程的二进制文件的部署是一个手动过程。Development Center 在客户端使用 javac 执行 Java 编译,并在目标服务器的 SYSJARCONTENTS 编目中将编译后的 Java 类字节码安装为 BLOB。为了使用二进制文件进行部署,客户需要:

    从源服务器的 SYSJARCONTENTS 编目表中提取出 JAR 文件。
    将提取出的文件复制或通过 FTP 传送到目标服务器。
    在目标服务器上执行 DB2 提供的 SQLJ_INSTALL_JAR 存储过程,以安装 jar。
    将 DBRM 文件从源服务器复制到目标服务器,并绑定 DBRM。
    复制和修改 Create Procedure DDL。
    在目标服务器上执行该 DDL。
    授予对迁移过来的 Java 存储过程的执行权限。
    Developer Workbench 对二进制部署的支持

    Developer Workbench (DWB) 同时支持 SQL 和 Java 存储过程的二进制部署。该工具会自动执行上一节中列出的那些步骤,从而简化二进制文件的部署。此外,DWB 还:

    允许源服务器和目标服务器是 DB2 Linux、UNIX 或 Windows;DB2 for z/OS;或 Derby。
    支持将 DB2 Linux、UNIX 或 Windows、DB2 for z/OS 和 Derby 存储过程部署到与源服务器具有相同操作系统的服务器的二进制部署。
    支持 DB2 for z/OS 中的本地 SQL 存储过程的二进制部署。(只有当源服务器和目标服务器都是 DB2 for z/OS V9 时,才能对本地 SQL 存储过程进行二进制部署。)

    不管使用源文件还是二进制文件,Developer Workbench 都通过 Deploy 向导提供了对将存储过程部署到 DB2 for z/OS V8 或 V9 的支持。该向导可以一次部署一个或多个存储过程。为了一次部署多个存储过程,可以从存储过程文件夹启动 Deploy 向导,如图 2 所示。

    图 1. 从 Data Project Explorer 启动 Deploy 向导

     

    图 2. 从 Database Explorer 启动 Deploy 向导

     

0
相关文章