ヘッダーをスキップ
Oracle® Fusion Middleware Oracle WebLogic Serverリソース・アダプタのプログラミング
11g リリース1(10.3.5)
B60996-03
  目次へ移動
目次

前
 
次
 

6 トランザクション管理

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

トランザクション管理の詳細については、J2CA 1.5仕様(http://java.sun.com/j2ee/connector/)の第7章「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は明示的な資格証明が必要でない場合、この特別なマッピングを構成する必要はありません。