Oracle® Fusion Middleware Oracle WebLogic Serverリソース・アダプタのプログラミング 11g リリース1(10.3.5) B60996-03 |
|
前 |
次 |
次の項では、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トランザクションのサポートを使用すると、リソース・アダプタの外部(したがって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は明示的な資格証明が必要でない場合、この特別なマッピングを構成する必要はありません。 |