Oracle® Fusion Middleware Oracle WebLogic Server リソース アダプタ プログラマーズ ガイド 11g リリース 1 (10.3.1) B55541-01 |
|
戻る |
次へ |
以下の節では、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 トランザクションのサポートを使用すると、リソース アダプタの外部 (したがって 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 は、トランザクションが終了した時点で接続をクリーンアップします。
リソース アダプタのトランザクション サポート レベルは、J2EE 標準のリソース アダプタ デプロイメント記述子 ra.xml
で指定します。トランザクション サポート レベルを指定するには、次の手順に従います。
トランザクションをサポートしない場合、次のエントリを ra.xml
デプロイメント記述子ファイルに追加します。<transaction-support>NoTransaction</transaction-support>
XA トランザクションの場合、次のエントリを ra.xml
デプロイメント記述子ファイルに追加します。<transaction-support>XATransaction</transaction-support>
ローカル トランザクションの場合、次のエントリを ra.xml
デプロイメント記述子ファイルに追加します。<transaction-support>LocalTransaction</transaction-support>
ra.xml
デプロイメント記述子で指定されたトランザクション サポートの値は、リソース アダプタのすべての接続ファクトリのデフォルト値になります。weblogic-ra.xml
デプロイメント記述子の transaction-support
要素で値を指定すると、特定の接続ファクトリについてこの値をオーバーライドできます。
transaction-support
の値は以下のいずれかです。
NoTransaction
LocalTransaction
XATransaction
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 トランザクションにサポートしているプールに対して、サーバの起動時にプールで保留中のトランザクションが見つかった場合は、WLS は、JCA 接続プールのトランザクションが回復できます。保留中のトランザクションが見つかった場合は、WLS は回復時に、ManagedConnectionFactory.createManagedConnection(javax.security.auth.Subject subject、ConnectionRequestInfo cxRequestInfo)
を使用して、EIS への ManagedConnection を取得します。
EIS がサインオンするために明示的な資格 (ユーザ名とパスワードなど) が必要な場合は、最初期接続に対して、特別な資格マッピングをコンフィグレーションして、適切な資格で WLS をコンフィグレーションする必要があります。「初期接続 : アプリケーションの要求がない場合、アダプタからの ManagedConnection が必要」を参照してください。マッピングが見つからない場合、WLS は Subject
として null
を使用します。
注意 : EIS は明示的な資格が必要でない場合、この特別なマッピングをコンフィグレーションする必要はありません。 |