
在 z/OS 上啟用 DB2 JDBC 類型 2 驅動程式
您可以在 z/OS® 上使用 JDBC 類型 2 驅動程式實作,使 Liberty 伺服器能夠與 DB2® 互動。
開始之前
在您啟用這項支援之前,必須先啟動 Angel 程序。如需相關資訊,請參閱在 z/OS 上管理 Liberty。您可以將 Liberty 伺服器配置成以 z/OS 已啟動作業形式執行。如需相關資訊,請參閱將 Liberty 伺服器配置成 z/OS 已啟動作業。
關於這項作業
當您使用 DB2 等之類具備 RRS 功能的資源時,選用的配置如下:
- 您可以將伺服器啟用成在它停止之時,從「資源和回復服務 (RRS)」的 RM.DATA 日誌串流中,自動刪除資源管理程式名稱。
這個配置是選用的,但啟用的話,它會防止資源管理程式名稱累積在日誌串流中。
如果要能夠自動刪除 RM 名稱,請將「資源存取控制機能 (RACF®)」配置成容許伺服器呼叫 ATRSRV 巨集。
如果要能夠自動刪除 RM 名稱,用來執行 Liberty 伺服器的使用者 ID 必須在 FACILITY 類別中,具備下列其中一項的 ALTER 存取權:
- MVSADMIN.RRS.COMMANDS.gname.sysname 資源,以便存取特定記載群組名稱 (gname) 和系統 (sysname)
- MVSADMIN.RRS.COMMANDS.* 資源,以便存取所有系統和記載群組名稱
- 您可以定義 RM.METADATA 日誌串流來記載可協助進行除錯的資料。用來執行 Liberty 伺服器的使用者 ID 必須依照說明,在 FACILITY 類別中具備 ALTER 存取權。
註: 如需 ATRSRV 巨集、設定適當 RACF 許可權,以及如何定義 RM.METADATA 日誌串流的相關資訊,請參閱與系統的 z/OS 層次相關的 MVS Programming: Resource Recovery 出版品。
- 當伺服器已停止,或不再需要 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 資源,並將 READ 權限提供給必要的使用者。
下列範例說明選用的配置:
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>