WebSphere Application Server でのトランザクション・サポート
トランザクションのサポートは、WebSphere® Application Server 内のトランザクション・サービスによって提供されます。アプリケーションがトランザクションを使用する方法は、 アプリケーション・コンポーネントのタイプによって異なります。
トランザクションとは、内部でリソースに対する複数の更新を、アトミックに (不可分の作業単位として) 行うことができるアクティビティーの単位です。 この場合、すべての更新が永続的に行われるか、または永続的な更新がまったく行われないかのいずれかです。 例えば、SQL COMMIT ステートメントの処理中に、データベース・マネージャーは複数の SQL ステートメントをリレーショナル・データベースにアトミックにコミットします。この場合、トランザクションは、全体がデータベース・マネージャー内に含まれ、 リソース・マネージャー・ローカル・トランザクション (RMLT) であると考えることができます。 コンテキストによっては、 トランザクションが作業論理単位 (LUW) と呼ばれる場合もあります。 トランザクションに複数のリソース・マネージャー、 例えば複数のデータベース・マネージャーが含まれる場合、外部トランザクション・マネージャーは個別のリソース・マネージャーを調整する必要があります。複数のリソース・マネージャーにわたるトランザクションはグローバル・トランザクション と呼ばれます。WebSphere Application Server は、トランザクション・マネージャーとして、グローバル・トランザクションを調整し、受け取ったグローバル・トランザクションの参加プログラムになることができ、リソース・マネージャーのローカル・トランザクションを実行できる環境も提供します。
- セッション Bean は、コンテナー管理のトランザクション (この場合、 Bean はトランザクションの管理をコンテナーに委任する) または Bean 管理のトランザクション (Bean 自体がトランザクションを管理するコンポーネント管理トランザクション) のいずれかを使用できます。
- エンティティー Bean は、コンテナー管理トランザクションを使用します。
- Web コンポーネント (サーブレット) およびアプリケーション・クライアント・コンポーネントは、コンポーネント管理トランザクションを使用します。
WebSphere Application Server は、その XAResource インターフェースを介してリソース・マネージャーの調整をサポートするトランザクション・マネージャーであり、CORBA Object Transaction Service (OTS) プロトコルまたは Web Service アトミック・トランザクション (WS-AtomicTransaction) プロトコルをサポートするトランザクション・マネージャーとともに、分散グローバル・トランザクションに参加します。WebSphere Application Server はまた、Java™ EE コネクター 1.5 リソース・アダプターを介してインポートされたトランザクションに参加します。分散トランザクションの調整が必要でない場合、 ローカル・トランザクション・サポートを介して、 データベース、JMS キュー、および JCA コネクターと 対話するように、WebSphere アプリケーションを構成することもできます。
WebSphere Application Server for z/OS® は、XAResource ベースのリソース・マネージャーの調整をサポートする以外に、RRS (z/OS リソース・リカバリー・サービス) によるリソース・マネージャーの調整をサポートします。RRS 準拠のリソース・マネージャーには DB2®、WebSphere MQ、IMS™、および CICS® があります。IBM® WebSphere Application Server for z/OS は、同一のグローバル・トランザクションにおいて、RRSTransactional リソース・マネージャーと XA 対応リソース・マネージャーを合わせて調整することが可能です。
トランザクション・サポートを提供する
リソース・マネージャーは、2 フェーズの調整をサポートするもの (XAResource インターフェースの
提供によるか、あるいは RRS のサポートによる) と、1 フェーズのみの調整を
サポートするもの (例えば、LocalTransaction インターフェースによる) に分類できます。
WebSphere Application Server トランザクション・サポートは、トランザクション内で、任意の数の 2 フェーズ対応のリソース・マネージャーを調整できます。これにより、他にリソース・マネージャーがない場合でも、
単一の 1 フェーズ対応のリソース・マネージャーをトランザクション内で使用することも可能になります (この場合、WebSphere トランザクションは必要ありません)。
トランザクション・サポートを提供するリソース・マネージャーは、
2 フェーズの調整をサポートするもの (XAResource インターフェースの提供による) と、
1 フェーズのみの調整をサポートするもの (例えば、LocalTransaction インターフェースによる) に分類できます。
WebSphere Application Server トランザクション・サポートは、トランザクション内で、任意の数の 2 フェーズ対応のリソース・マネージャーを調整できます。これにより、他にリソース・マネージャーがない場合でも、
単一の 1 フェーズ対応のリソース・マネージャーをトランザクション内で使用することも可能になります (この場合、WebSphere トランザクションは必要ありません)。
- このシナリオでは、トランザクションに参加する 1 フェーズ・コミット・リソース・プロバイダーは 1 つだけ存在し、 トランザクションに参加する 2 フェーズ・コミット・リソース・プロバイダーは、 すべて読み取り専用方式で使用されています。 この場合、2 フェーズ・コミットの準備フェーズ中に、 2 フェーズ・コミット・リソースはすべて読み取り専用に充てられます。 1 フェーズ・コミット・リソース・プロバイダーは、更新を実行する唯一のプロバイダーであるため、1 フェーズ・コミット・リソースを準備する必要はありません。
- このシナリオでは、1 つ以上の 2 フェーズ・コミット・リソース・プロバイダーとともに トランザクションに参加する 1 フェーズ・コミット・リソース・プロバイダーが 1 つのみ存在し、 最終参加者サポート が使用可能です。 最終参加者サポートにより、 同一のグローバル・トランザクションの中で 1 つの 1 フェーズ・コミット対応リソースを、 任意の数の 2 フェーズ・コミット対応リソースとともに使用できます。最終参加者サポートに関する詳細については、同一トランザクション内での 1 フェーズ・コミットおよび 2 フェーズ・コミットのリソースの使用を参照してください。
ActivitySession サービスは、 グローバル・トランザクション・コンテキストによって提供される作業単位 (UOW) 有効範囲の、代替となる作業単位有効範囲を提供します。 分散コンテキストが、複数の 1 フェーズ・リソース・マネージャーを調整するために使用できます。WebSphere EJB コンテナーおよびデプロイメント・ツールは、Java EE プログラミング・モデルへの拡張として ActivitySessions をサポートします。エンタープライズ Bean は、トランザクション・コンテキストの代替として、 アクティブ・セッション・コンテキストの影響を受けるライフサイクルを付与されてデプロイされます。 次に、アプリケーションは、単なる EJB メソッドの存続期間ではなく、クライアントを有効範囲とした ActivitySession の期間中、リソース・マネージャーと対話し、リソース・マネージャーのローカル・トランザクションの結果を ActivitySession によって送信させることができます。ActivitySessions について詳しくは、ActivitySession サービスの使用を参照してください。
トランザクション・クラスを使用して、
ワークロード管理を行うためにクライアントのワークロードを分類することができます。
ワークロードは、個別の WebSphere トランザクションであり、
それぞれ別のサーバント領域をターゲットにします。それぞれのゴールは、
該当するサービス・クラスで定義されます。
各トランザクションは、サーバント・リージョン・プロセスで独自の WLM 別プログラムにディスパッチされ、
サービス・クラスのゴールに従って管理されます。
キュー・マネージャーとしてワークロード管理によって表示されるサーバー・コントローラーは、
クライアント要求に関連付けられている別プログラムを使用して、
作業の優先順位を管理します。
作業の優先順位が高い場合、ワークロード管理はその作業をサーバー内の優先順位が高いサーバントに渡すことができます。
作業の優先順位が低い場合、ワークロード管理はその作業を優先順位が低いサーバントに渡すことができます。
同じサーバー内で優先順位に従って作業を分割するという効果があります。