ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Server リソース アダプタ プログラマーズ ガイド
11g リリース 1 (10.3.1)
B55541-01
目次
目次

戻る
戻る
 
次へ
次へ
 

6 トランザクション管理

以下の節では、WebLogic Server からエンタープライズ情報システム (EIS) への発信通信に使用されるシステムレベルのトランザクション管理規約について説明します。

トランザクション管理の詳細については、J2CA 1.5 仕様 (http://java.sun.com/j2ee/connector/) の「Transaction Management」を参照してください。EIS から WebLogic Server への着信通信におけるトランザクション管理の詳細については、「トランザクション インフロー」を参照してください。

サポートされているトランザクション レベル

トランザクションとは、データの一貫性と整合性を維持するために、すべてのデータに関して必ず一斉にコミットするか、またはまったくコミットしないかのどちらかの一連の処理のことです。EIS へのトランザクション アクセスは、ビジネス アプリケーションにとって重要な要件です。J2EE 1.5 コネクタ アーキテクチャでは、トランザクションの使用をサポートしています。

WebLogic Server では、WebLogic Server のトランザクション マネージャ実装を利用して、XA やローカルのトランザクションに対応するリソース アダプタ、またはトランザクションなしのリソース アダプタをサポートしています。ra.xml ファイルの transaction-support 要素でトランザクション サポートの種類を定義します。リソース アダプタでサポートできるのは 1 種類のみです。weblogic-ra.xml デプロイメント記述子の transaction-support 要素を使用すると、ra.xml で指定された値をオーバーライドできます。詳細については、「表 A-13、default-connection-properties の下位要素」の「トランザクション レベルのコンフィグレーション」および「transaction-support」を参照してください。

XA トランザクションのサポート

XA トランザクションのサポートを使用すると、リソース アダプタの外部 (したがって EIS の外部) のトランザクション マネージャによってトランザクションを管理できるようになります。アプリケーション コンポーネントが EIS 接続要求をトランザクションの一部として境界設定する場合、アプリケーション サーバは XA リソースをトランザクション マネージャに登録します。アプリケーション コンポーネントがその接続を閉じると、アプリケーション サーバは、トランザクションが完了した時点で EIS 接続をクリーンアップします。

ローカル トランザクションのサポート

ローカル トランザクションのサポートを使用すると、WebLogic Server はリソース アダプタのローカルにあるリソースを管理できます。XA トランザクションとは異なり、通常、ローカル トランザクションは 2 フェーズ コミット プロトコル (2PC) には関与できません。ローカル トランザクションのリソース アダプタが 2PC トランザクションに関与できるのは、トランザクションに関わるのがローカル トランザクション リソースだけで、WebLogic Server コネクタ コンテナがラスト リソース コミットによる最適化を利用している場合のみです。その場合、トランザクションの結果はリソース アダプタのローカル トランザクションによって制御されます。

通常、ローカル トランザクションは、そのリソース アダプタに固有の API または CCI インタフェース (そのアダプタがサポートしている場合) を使用して開始されます。ローカル トランザクションのサポートを使用するようにコンフィグレーションされたリソース アダプタ接続を作成し、XA トランザクションのコンテキスト内で使用する場合、WebLogic Server は、この接続用のローカル トランザクションを自動的に開始します。XA トランザクションが終了し、コミットの準備が整うと、XA トランザクションの一部の XA リソースに対して prepare がまず呼び出されます。次に、ローカル トランザクションがコミットされます。

ローカル トランザクションでコミットが失敗した場合、XA トランザクションとすべての XA リソースはロールバックされます。コミットが成功した場合、XA トランザクションのすべての XA リソースはコミットされます。アプリケーション コンポーネントがその接続を閉じると、WebLogic Server は、トランザクションが終了した時点で接続をクリーンアップします。

トランザクション サポートなし

トランザクションのサポートを使用しないようにリソース アダプタがコンフィグレーションされている場合でも、そのリソース アダプタをトランザクションのコンテキストで使用することができます。ただし、その場合、そのリソース アダプタで使用する接続はトランザクションに関与しないので、トランザクションがないかのように動作します。つまり、これらの接続を使用して実行される操作は、基底の EIS に対して直ちに行われるので、トランザクションがロールバックされた場合、これらの接続による変更は元に戻りません。

トランザクション レベルのコンフィグレーション

リソース アダプタのトランザクション サポート レベルは、J2EE 標準のリソース アダプタ デプロイメント記述子 ra.xml で指定します。トランザクション サポート レベルを指定するには、次の手順に従います。

ra.xml デプロイメント記述子で指定されたトランザクション サポートの値は、リソース アダプタのすべての接続ファクトリのデフォルト値になります。weblogic-ra.xml デプロイメント記述子の transaction-support 要素で値を指定すると、特定の接続ファクトリについてこの値をオーバーライドできます。

transaction-support の値は以下のいずれかです。

ra.xml デプロイメント記述子でのトランザクション レベルの指定の詳細については、J2CA 1.5 仕様 (http://java.sun.com/j2ee/connector/) の節 17.6 「Resource Adapter XML Schema Definition」を参照してください。weblogic-ra.xml デプロイメント記述子でのトランザクション レベルの指定の詳細については、「A weblogic-ra.xml スキーマ」を参照してください。

XA トランザクション回復の資格マッピングのコンフィグレーション

XA トランザクションにサポートしているプールに対して、サーバの起動時にプールで保留中のトランザクションが見つかった場合は、WLS は、JCA 接続プールのトランザクションが回復できます。保留中のトランザクションが見つかった場合は、WLS は回復時に、ManagedConnectionFactory.createManagedConnection(javax.security.auth.Subject subject、ConnectionRequestInfo cxRequestInfo) を使用して、EIS への ManagedConnection を取得します。

EIS がサインオンするために明示的な資格 (ユーザ名とパスワードなど) が必要な場合は、最初期接続に対して、特別な資格マッピングをコンフィグレーションして、適切な資格で WLS をコンフィグレーションする必要があります。「初期接続 : アプリケーションの要求がない場合、アダプタからの ManagedConnection が必要」を参照してください。マッピングが見つからない場合、WLS は Subject として null を使用します。


注意 :

EIS は明示的な資格が必要でない場合、この特別なマッピングをコンフィグレーションする必要はありません。