将嵌入式 SQLJ 与 DB2 for z/OS 旧驱动程序配合使用

Java™ 结构化查询语言 (SQLJ) 是一组编程扩展,它允许程序员使用 Java 编程语言嵌入提供结构化查询语言 (SQL) 数据库请求的语句。可将 DB2® for z/OS® 旧 JDBC 驱动程序与数据访问应用程序配合使用。

关于此任务

注意:
  1. 要将 SQLJ 与 WebSphere® Application Server for z/OS 和 DB2 for z/OS 旧驱动程序配合使用,请安装 DB2 APAR PQ76442。
  2. 使用 SQLJ 生成的容器管理的持久性 (CMP) bean 不受 DB2 z/OS 版旧驱动程序支持。请将 DB2 通用驱动程序用于使用 SQLJ 生成的 CMP。

以下是使用 SQLJ 来开发运行于使用 DB2 z/OS 版旧驱动程序的 WebSphere Application Server for z/OS V6.0 上的应用程序所必需的步骤。

过程

  1. 根据需求在 Rational® Application Developer 中设计应用程序,必要时使用 SQLJ。例如,如果您开发一个使用 BMP 的名为“Test”的 bean,那么编码后的文件为 TestBean.sqlj(而不是 TestBean.java)。
    1. 从 DB2 for z/OS 安装中,将 db2sqljclasses.zip 文件复制到工作站上的目录中,然后修改 EJB Java 归档 (JAR) 项目的 Java 构建路径以包括 db2sqljclasses.zip 文件。
    2. 请按照以下步骤来转换 SQLJ 代码:
      1. 定位 SQLJ 文件,然后使用 ASCII 方式转换将它 FTP 到 z/OS 环境中的 HFS。
      2. 使用 SQLJ 命令以将 SQLJ 代码转换成 Java 代码。这将生成两个文件,一个带有 .java 扩展名,另一个带有 .ser 扩展名。
        sqlj -compile=false SQLJ_FILE_NAME
      3. .java 文件(使用 ASCII 模式转换)和 .ser 文件(使用 BINARY 模式转换)移动到工作站上的 SQLJ 文件所在的目录中。
      4. 刷新项目。
    3. 为应用程序生成部署代码。
    4. 导出 EAR 文件。
  2. 安装应用程序
    1. 使用 DB2 for zOS 本地 JDBC 提供程序 (RRS) 创建数据源。 定义 JDBC 提供程序和数据源时,缺省值足以提供 SQLJ 支持。
    2. 将该应用程序安装到 WebSphere Application Server 中。

      使用您在步骤 1 中创建的数据源来解析资源引用。

  3. 定制序列化概要文件 生成部署代码时,将创建特定于应用程序的序列化概要文件或带有 .ser 扩展名的文件。在能够使用它们前,必须在 z/OS 环境中定制这些概要文件。
    1. 以二进制传输方式将序列化概要文件传输到要安装应用程序的 z/OS 环境。 另外,也可以使用 Java JAR 命令从已安装的 EAR 目录中的 EJB JAR 文件解压缩序列化概要文件。
    2. 使用 db2profc 命令定制序列化概要文件。 您可以从 DB2 文档中获得与此命令关联的各种选项的信息;但是,这是定制概要文件的最低要求:
      db2profc -pgmname=PROGRAM_NAME PROFILE_NAME
      • 其中:
        • PROGRAM_NAME 必须是有效的 MVS™ PDS 成员名,最长可为七个字符。
        • PROFILE_NAME 是您要定制的序列化概要文件的名称。您必须为每个概要文件运行一次 db2profc。
      • 概要文件定制程序在 PDS USERNAME.DBRMLIB.DATA 中创建四个 DBRM 数据集。DBRM 成员名以您指定为 PROGRAM_NAME 的内容开头。
      • 确保您的 CLASSPATH 环境变量包含:
        • 序列化概要文件的位置
        • 在已安装的 EAR 目录中的 EJB JAR 文件
      • 分配 PDS 以包含创建的 DBRM。将此 PDS 命名为 USERNAME.DBRMLIB.DATA,其中 USERNAME 是将实现 db2profc 命令的用户。
        以下字段是一个示例:
        空间单元 = TRACK
        主要数量 = 15
        辅助数量 = 5
        目录块 = 10
        记录格式 = FB
        记录长度 = 80
        块大小 = 27920
        数据集名称类型 = PDS
    3. 将现有序列化概要文件(现已定制)放入到属于应用程序类路径的一部分的位置中,而且在 EJB JAR 文件中的序列化概要文件之前。

      DB2 概要文件定制程序的输出和输入文件具有相同的名称。将输出文件移到类路径中原有的序列化概要文件之前。或者,您可以将已定制的概要文件移到 EJB JAR 文件中来替换原有的文件。建议您替换原始文件。

      要点:如果您从序列化概要文件存在的目录运行 db2profc 命令,那么概要文件定制程序将覆盖序列化概要文件。因为在概要文件定制程序运行后,仅需要定制的版本,所以这不是问题。

    4. 将 DBRM 绑定到包中。
      注: 在绑定 DBRM 之前,必须创建数据库表。如果未执行此操作,那么绑定作业将失败。

      db2profc 定制命令创建一系列必须绑定到包中的 DBRM。为每个已定制的概要文件创建四个 DBRM。

      这些 DBRM:
      • 位于 USERNAME.DBRMLIB.DATA 中
      • 都有以您指定为 PROGRAM_NAME 的内容开头的名称
      • 都是从 1 到 4 编号

        例如,如果以 IBMUSER 身份登录并指定 -pgmname=TESTBMP,然后运行 db2profc 命令,那么会创建四个数据集(TESTBMP1、TESTBMP2、TESTBMP3 和 TESTBMP4)并将它们放入 PDS IBMUSER.DBRMLIB.DATA 中。

        这些数据集必须绑定至隔离级别为 UR、CS、RS 和 RR 的包中。您必须为定制的每个序列化概要文件运行绑定。

    5. 在将所有 DBRM 绑定到包中之后,将这些包绑定到计划中。随意命名该计划。

      要点:还必须在新计划的包列表 (PKLIST) 中包括这些 JDBC 包。要包括的 JDBC 包的缺省名称为 DSNJDBC.DSNJDBC1、...、DSNJDBC.DSNJDBC4。如果安装未使用 JDBC 包的缺省名称,那么请与 DB2 管理员联系以确定需要包括的 JDBC 包的名称。

      以下是用于绑定新计划的样本作业。
      • 在以 IBMUSER 登录时,创建一个序列化概要文件。
      • 指定了 -pgmname=TESTBMP 以运行 db2profc。
      • 新的计划被命名为 SQLJPLAN。
      //BBOOLS  JOB (516B,1025),'IBMUSER',MSGCLASS=H,CLASS=A,PRTY=14,
      //         NOTIFY=&SYSUID,TIME=1440,USER=IBMUSER,PASSWORD=IBMUSER,
      //         MSGLEVEL=(1,1)
      //********************************************************************
      //BINDOLS  EXEC PGM=IKJEFT01,DYNAMNBR=20
      //DBRMLIB  DD  DSN=IBMUSER.DBRMLIB.DATA,DISP=SHR
      //*        DD  DSN=MVSDSOM.DB2710.SDSNDBRM,DISP=SHR
      //SYSTSPRT DD  SYSOUT=*
      //SYSPRINT DD  SYSOUT=*
      //SYSUDUMP DD  SYSOUT=*
      //SYSTSIN  DD  *
      
       DSN SYSTEM(DB2)
      
       BIND -
           PACKAGE(TESTBMP) -
           QUALIFIER(IBMUSER) -
           MEMBER(TESTBMP1) -
           VALIDATE(BIND) -
           ISOLATION(UR) -
           SQLERROR(NOPACKAGE) -
      
       BIND -
           PACKAGE(TESTBMP) -
           QUALIFIER(IBMUSER) -
           MEMBER(TESTBMP2) -
           VALIDATE(BIND) -
           ISOLATION(CS) -
           SQLERROR(NOPACKAGE) -
      
       BIND -
           PACKAGE(TESTBMP) -
           QUALIFIER(IBMUSER) -
           MEMBER(TESTBMP3) -
           VALIDATE(BIND) -
           ISOLATION(RS) -
           SQLERROR(NOPACKAGE) -
      
       BIND -
           PACKAGE(TESTBMP) -
           QUALIFIER(IBMUSER) -
           MEMBER(TESTBMP4) -
           VALIDATE(BIND) -
           ISOLATION(RR) -
           SQLERROR(NOPACKAGE) -
      
      
       BIND PLAN(SQLJPLAN)                 -
        QUALIFIER(IBMUSER)                 -
        PKLIST(TESTBMP.*                   -
               DSNJDBC.*                 ) -
        ACTION(REPLACE) RETAIN             -
        VALIDATE(BIND)
      
      END
      /*
    6. 对新计划授予相应权限。使用 DB2 的接口,如 SPUFI,来授予权限。发出此命令:
      GRANT EXECUTE ON PLAN PLANNAME TO APPSERVERID 
      其中:
      • PLANNAME 是绑定的计划的名称。
      • APPSERVERID 是运行 WebSphere Application Server 的标识;例如,CBSYMSR1。
  4. 配置数据源以使用新的计划
    1. 从 WebSphere Application Server for z/OS 管理控制台中,浏览到数据源,然后选择定制属性。
    2. 选择定制属性 planName
    3. 使用绑定时指定的计划名称来更新 planName 的值。
    4. 设置 enableSQLJtrue
  5. 停止并重新启动服务器。
  6. 运行应用程序。

指示主题类型的图标 任务主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tdat_sqljdb2zos
文件名:tdat_sqljdb2zos.html