在 z/OS 上启用 DB2 JDBC 2 类驱动程序
通过在 z/OS® 上使用 JDBC 2 类驱动程序实现,可以使 Liberty 服务器能与 DB2® 交互。
开始之前
必须启动 Angel 进程,才能启用此支持。有关更多信息,请参阅在 z/OS 上管理 Liberty。可以将 Liberty 服务器配置为作为 z/OS 启动任务运行。有关更多信息,请参阅将 Liberty 服务器配置为 z/OS 启动任务。
关于此任务
使用具备 RRS 功能的资源(例如 DB2)时,您具有下列可选配置:
- 可以使服务器能在停止时自动地将资源管理器名称从资源和恢复服务 (RRS) RM.DATA 日志流中删除。此配置是可选的,但如果启用,那么会阻止资源管理器名称在日志流中累积。要启用自动 RM 名称删除操作,请配置资源访问控制工具 (RACF®) 以允许服务器调用 ATRSRV 宏。要启用自动 RM 名称删除操作,用于运行 Liberty 服务器的用户标识在 FACILITY 类中必须对下列任一项具有 ALTER 访问权:
- MVSADMIN.RRS.COMMANDS.gname.sysname 资源,以访问特定日志记录组名 (gname) 和系统 (sysname)
- MVSADMIN.RRS.COMMANDS.* 资源,以允许访问所有系统和日志记录组名
- 可以定义 RM.METADATA 日志流以记录辅助调试的数据。用于运行 Liberty 服务器的用户标识必须像描述的那样,在 FACILITY 类中具有 ALTER 访问权。
注: 有关 ATRSRV 宏、设置相应的 RACF 许可权以及如何定义 RM.METADATA 日志流的更多信息,请参阅与系统的 z/OS 级别相关的《MVS 编程:资源恢复》出版物。
- 可以控制服务器停止时或不再需要 zosTransaction-1.0 功能部件时,等待事务主动使用本机上下文来完成的时间。这可以通过使用 nativeTransactionManager 配置元素和 shutdownTimeout 属性来完成。
- 可以限制在特定服务器上执行任何事务性工作(涉及具备 RRS 功能的资源,例如 DB2 T2)的用户权限。这可以通过使用 nativeTransactionManager 配置元素和 resourceManagerNamePrefix 属性来完成。注: resourceManagerNamePrefix 属性指定仅使用 1 到 8 个字母数字(A-Z、a-z、0-9)和国家标准字符(@、#、$)作为字符前缀,以用作向 RRS 注册的服务器生成资源管理器名称的组成部分。前缀“DEFAULT”是保留前缀,用于标识缺省服务器配置,因此不得用于保护服务器访问。如果所配置的前缀并不遵循名称、长度和字符需求,那么会使用前缀名称 DEFAULT。该前缀供系统管理员用来支持仅获授权的用户执行涉及具备 RRS 功能的资源的事务性工作(常规和恢复)。例如,配置了该前缀的服务器上的 DB2 T2。系统管理员必须在 SERVER 类下定义 BBG.RMNAME.<PREFIX>.RRS 资源,并授予必需的用户读权限。
这些示例描述可选的配置:
Server.xml 元素和属性定义:<nativeTransactionManager shutdownTimeout="20s" resourceManagerNamePrefix="PROD1"/>
RACF 资源定义和用户授权:RDEF SERVER BBG.RMNAME.PROD1.RRS UACC(NONE) PERMIT BBG.RMNAME.PROD1.RRS CLASS(SERVER) ACCESS(READ) ID(PROD1USR) SETR RACLIST(SERVER) GENERIC(SERVER) REFR
有关 nativeTransactionManager 元素的更多信息,请参阅 z/OS 事务管理。
过程
示例
<application type="war" id="db2T2TxWar" name="db2T2TxWar"
location="/u/user1/wlp/usr/servers/defaultServer/dropins/db2T2Tx.war" />
<jdbcDriver id="DB2T2" libraryRef="DB2T2LibRef"/>
<library id="DB2T2LibRef">
<fileset dir="/db2v10/jcc/classes" />
<fileset dir="/db2v10/jcc/lib" />
</library>
<dataSource id="jdbc/DB2T2" jndiName="jdbc/DB2T2" jdbcDriverRef="DB2T2" type="javax.sql.ConnectionPoolDataSource">
<properties.db2.jcc driverType="2" databaseName="LOC1" />
</dataSource>