12 WebLogic ServerでのJDBC XAドライバの使い方

分散トランザクションにおけるWebLogic ServerでのXA JDBCドライバの概要を説明します。これらのドライバは、WebLogic Server接続プールとDBMSの間の接続を提供します。分散トランザクションで使用するドライバは、後に「/XA」が続くドライバ名(Oracle Thin/XA Driverなど)によって指定されます。

Oracle Thin/XA Driverの使い方

WebLogic Serverに付属するOracle Thin Driverは事前に構成され、そのまま使用できる状態になっています。

ドライバを更新するか、別のバージョンを使用する場合は、『Oracle WebLogic Server JDBCアプリケーションの開発』「JDBCドライバでのAPI拡張機能の使い方」を参照してください。

Oracle Thin/XA Driverの環境の設定

以下の節では、Oracle Thin/XA Driverの環境を設定する方法について説明します。

WebLogic Serverの構成

Oracle Thin/XA Driverとともに使用するWebLogic Serverの構成方法の詳細は、『Oracle WebLogic Server JDBCアプリケーションの開発』「JDBCドライバでのAPI拡張機能の使い方」を参照してください。

XAのデータベース・サーバーでの有効化

XA用のデータベースを準備するには、これらのステップを実行します:

  1. システム・ユーザーとしてsqlplusにログオンします(sqlplus sys/password@<DATABASE ALIAS NAME>など)。
  2. 次のコマンドを実行します。@xaview.sql

    スクリプトxaview.sqlは、$ORACLE_HOME/rdbms/adminディレクトリにあります。

  3. XAデータ・ソースが定義されているすべてのデータベース・ユーザーに、次の権限を個別に付与するか、1つ以上のロールを介して付与してください。
    • grant select on v$xatrans$ to <user/role>;

    • grant select on pending_trans$ to <user/role>;

    • grant select on dba_2pc_pending to <user/role>;

    • grant select on dba_pending_transactions to <user/role>;

    • grant execute on dbms_xa to <user/role>;

    • grant force any transaction to <user/role>;

    <user/role>は、データベース・ユーザーであるかロールです。

    ノート:

    Force Any Transaction権限により、複数のユーザーが保留中のOracleトランザクション・ブランチをロールバックできるようになります。この権限がなく、ユーザーが、別のユーザーによって作成されたリカバリ済トランザクション・ブランチをロールバックしようとすると、XAResource.rollback()操作は失敗し、エラーが表示されます。
    ORA-24774: cannot switch to specified transaction
    ORA-01031: insufficient privileges

上のステップをデータベース・サーバー上で実行しない場合、通常のXAデータベース問合せと更新は正常に動作できます。ただし、クラッシュ後の再起動時にWebLogic Serverトランザクション・マネージャによってリカバリが実行されると、XAER_RMERRでOracleリソースのリカバリに失敗します。クラッシュのリカバリは、XAリソースに対する標準的な処理です。

Oracle Thin/XA Driverの構成プロパティ

データ・ソース・プロパティの構成方法の詳細は、『Oracle WebLogic Server JDBCデータ・ソースの管理』「JDBCデータ・ソースの構成」を参照してください。

その他のXAドライバの使い方

その他のXA準拠JDBCドライバを使用するためには、ドライバ・クラス・ライブラリのパスをCLASSPATHで指定した上で、ベンダーの説明に従って操作を行う必要があります。

WebLogicブランドのDataDirectドライバの使用

WebLogicブランドのDataDirectドライバとともに使用するWebLogic Serverの構成方法の詳細は、『Oracle WebLogic Server JDBCアプリケーションの開発』「WebLogicブランドDataDirectドライバの使用」を参照してください

追加の考慮事項

ご使用のデータベースのベンダーが、XA用の環境を準備するためのステップ説明を提供していることがあります。ステップには、次のような方法が含まれます。

  • ご使用のデータベース・サーバーでXAを使用可能にする方法。これには、追加のユーザー権限を付与する方法などが含まれます。

  • スレッド、タイムアウト、ロールバック動作など、ベンダー固有のトランザクション動作を補正する方法。

  • ベンダー固有の接続プロパティを使用する方法。

詳細は、ご使用のデータベースのベンダー・ドキュメントを参照してください。