z/OS でのDB2JDBC Type 2ドライバーの使用可能化

Liberty サーバーは、 z/OS®上で JDBC タイプ 2 ドライバー実装を使用することにより、 DB2® と対話できるようになります。

始めに

このサポートを使用可能にする前に、エンジェル・プロセスを開始する必要があります。 詳しくは、 z/OSを参照してください。 z/OS 開始タスクとして実行するように Liberty サーバーを構成できます。

このタスクについて

DB2などの RRS 対応リソースを使用する場合、以下のオプション構成があります。
  • サーバーの停止時に Resource and Recovery Services (RRS) RM.DATA ログ・ストリームからリソース・マネージャー名をサーバーが自動的に削除するように構成できます。 この構成はオプションですが、使用可能にすると、リソース・マネージャー名がログ・ストリームに累積することがなくなります。 RM 名の自動削除を使用可能にするには、サーバーが ATRSRV マクロを呼び出せるように Resource Access Control Facility (RACF®) を構成します。 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 プログラミング: リソース・リカバリー」資料を参照してください。
  • サーバーが停止したとき、または zosTransaction-1.0 フィーチャーが必要なくなったときに、ネイティブ・コンテキストをアクティブに使用するトランザクションが完了するまで待機する時間を制御できます。 これを行うには、nativeTransactionManager 構成エレメントおよび shutdownTimeout 属性を使用します。
  • 特定のサーバー上で RRS 対応リソース (例えば、 DB2 T2) に関係するトランザクション作業を実行するためのユーザー権限を制限することができます。 これを行うには、nativeTransactionManager 構成エレメントおよび resourceManagerNamePrefix 属性を使用します。
    注: resourceManagerNamePrefix 属性は、RRS に登録されているサーバー生成リソース・マネージャー名の一部として使用される、1 から 8 文字の英数字 (A から Z、a から z、0 から 9) および国別文字 (@、#、$) のみの接頭部を指定します。 接頭部「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 トランザクション管理」を参照してください。

手順

  1. Liberty サーバーの server.xml 構成ファイルを更新します。 zosTransaction-1.0 フィーチャー・サブエレメントを featureManager エレメントに追加します。
    <featureManager>
      <feature>zosTransaction-1.0</feature>
    </featureManager>
    このフィーチャーを指定すると、アプリケーション・サーバーは、リソース・リカバリー・サービス (RRS)、アプリケーション・サーバーのトランザクション・マネージャー、およびリソース・マネージャーの間で、トランザクションのアクティビティーを同期化し、適切に管理できるようになります。 そのため、 zosTransaction-1.0 フィーチャーを構成せずに作業することは許可されません。
  2. リソースの (DB2) ネイティブ・ライブラリーをリソースの <library> 構成エレメントに追加します。
    例の <library> エレメントは以下のようになります。
    <library id ="DB2T2LibRef">
      	<fileset dir="<YOUR DB2 T2 LIBRARY PATHS>" />
    	  <fileset dir="<YOUR DB2 T2 NATIVE LIBRARY PATHS>" />
    </library>	
  3. jdbcDriver エレメントと datasource エレメントを構成します。

    datasource エレメントを定義する際、type 属性は、 値 javax.sql.ConnectionPoolDataSource がデフォルトで使用されるため、構成をスキップすることができます。 type 属性を明示的に構成する場合は、値 javax.sql.ConnectionPoolDataSource を使用する必要があります。

    datasource エレメントには、properties.db2.jcc という名前の子エレメントを含めることができます。 properties.db2.jcc エレメントで指定された属性は、DB2 JCC Driver に直接渡されます。 driverType 属性は必須であり、2 に設定する必要があります。 databaseName 属性も必須です。 ssid 属性は必須ではありませんが、LPAR に複数の DB2 サブシステムがある場合に当該データ・ソースの接続先の DB2 for z/OS サブシステムを制御するために使用できます。

以下の例では、server.xml 構成ファイルでアプリケーション、JDBC ドライバー、ライブラリー、ファイル・セット、およびデータ・ソースの各エレメントを構成する方法を示します。
<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>