将嵌入式 SQLJ 与 DB2 for z/OS 旧驱动程序配合使用
Java™ 结构化查询语言 (SQLJ) 是一组编程扩展,它允许程序员使用 Java 编程语言嵌入提供结构化查询语言 (SQL) 数据库请求的语句。可将 DB2® for z/OS® 旧 JDBC 驱动程序与数据访问应用程序配合使用。
关于此任务
- 要将 SQLJ 与 WebSphere® Application Server for z/OS 和 DB2 for z/OS 旧驱动程序配合使用,请安装 DB2 APAR PQ76442。
- 使用 SQLJ 生成的容器管理的持久性 (CMP) bean 不受 DB2 z/OS 版旧驱动程序支持。请将 DB2 通用驱动程序用于使用 SQLJ 生成的 CMP。
以下是使用 SQLJ 来开发运行于使用 DB2 z/OS 版旧驱动程序的 WebSphere Application Server for z/OS V6.0 上的应用程序所必需的步骤。
过程
- 根据需求在 Rational® Application Developer 中设计应用程序,必要时使用 SQLJ。例如,如果您开发一个使用 BMP 的名为“Test”的 bean,那么编码后的文件为 TestBean.sqlj(而不是 TestBean.java)。
- 从 DB2 for z/OS 安装中,将 db2sqljclasses.zip 文件复制到工作站上的目录中,然后修改 EJB Java 归档 (JAR) 项目的 Java 构建路径以包括 db2sqljclasses.zip 文件。
- 请按照以下步骤来转换 SQLJ 代码:
- 定位 SQLJ 文件,然后使用 ASCII 方式转换将它 FTP 到 z/OS 环境中的 HFS。
- 使用 SQLJ 命令以将 SQLJ 代码转换成 Java 代码。这将生成两个文件,一个带有 .java 扩展名,另一个带有 .ser 扩展名。
sqlj -compile=false SQLJ_FILE_NAME
- 将 .java 文件(使用 ASCII 模式转换)和 .ser 文件(使用 BINARY 模式转换)移动到工作站上的 SQLJ 文件所在的目录中。
- 刷新项目。
- 为应用程序生成部署代码。
- 导出 EAR 文件。
- 安装应用程序
- 使用 DB2 for zOS 本地 JDBC 提供程序 (RRS) 创建数据源。 定义 JDBC 提供程序和数据源时,缺省值足以提供 SQLJ 支持。
- 将该应用程序安装到 WebSphere Application Server 中。
使用您在步骤 1 中创建的数据源来解析资源引用。
- 定制序列化概要文件 生成部署代码时,将创建特定于应用程序的序列化概要文件或带有 .ser 扩展名的文件。在能够使用它们前,必须在 z/OS 环境中定制这些概要文件。
- 以二进制传输方式将序列化概要文件传输到要安装应用程序的 z/OS 环境。 另外,也可以使用 Java JAR 命令从已安装的 EAR 目录中的 EJB JAR 文件解压缩序列化概要文件。
- 使用 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
- 其中:
- 将现有序列化概要文件(现已定制)放入到属于应用程序类路径的一部分的位置中,而且在 EJB JAR 文件中的序列化概要文件之前。
DB2 概要文件定制程序的输出和输入文件具有相同的名称。将输出文件移到类路径中原有的序列化概要文件之前。或者,您可以将已定制的概要文件移到 EJB JAR 文件中来替换原有的文件。建议您替换原始文件。
要点:如果您从序列化概要文件存在的目录运行 db2profc 命令,那么概要文件定制程序将覆盖序列化概要文件。因为在概要文件定制程序运行后,仅需要定制的版本,所以这不是问题。
- 将 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 的包中。您必须为定制的每个序列化概要文件运行绑定。
- 在将所有 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 /*
- 对新计划授予相应权限。使用 DB2 的接口,如 SPUFI,来授予权限。发出此命令:
其中:GRANT EXECUTE ON PLAN PLANNAME TO APPSERVERID
- PLANNAME 是绑定的计划的名称。
- APPSERVERID 是运行 WebSphere Application Server 的标识;例如,CBSYMSR1。
- 配置数据源以使用新的计划
- 从 WebSphere Application Server for z/OS 管理控制台中,浏览到数据源,然后选择定制属性。
- 选择定制属性 planName。
- 使用绑定时指定的计划名称来更新 planName 的值。
- 设置 enableSQLJ 为 true。
- 停止并重新启动服务器。
- 运行应用程序。


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tdat_sqljdb2zos
文件名:tdat_sqljdb2zos.html