Java EE アプリケーションにおけるトランザクション処理

[Version 8.5 and later] WebSphere® eXtreme Scale は独自のリソース・アダプターを備えています。このリソース・アダプターを使用して、アプリケーションをデータ・グリッドに接続し、ローカル・トランザクションを処理することができます。

eXtreme Scale リソース・アダプターによるサポートのため、Java Platform, Enterprise Edition (Java EE) アプリケーションは、Java EE ローカル・トランザクションや eXtreme Scale の API を使用して、eXtreme Scale のクライアント接続を調べたり、ローカル・トランザクションを区分したりすることができます。 リソース・アダプターが構成されると、Java EE アプリケーションを使用して次のアクションを実行できます。

以下の追加機能は、WebSphere Application Server で使用可能なものです。

管理者の責任

eXtreme Scale リソース・アダプターは、Java EE アプリケーション・サーバーにインストールされるか、またはアプリケーションに組み込まれます。 リソース・アダプターをインストールした後、管理者は各カタログ・サービス・ドメインまたは各データ・グリッド・インスタンスに対して (後者の場合はオプション) 1 つ以上のリソース・アダプター接続ファクトリーを作成します。 接続ファクトリーはデータ・グリッドとの通信に必要なプロパティーを識別します。

アプリケーションが接続ファクトリーを参照し、接続ファクトリーがリモート・データ・グリッドへの接続を確立します。 各接続ファクトリーは単一の eXtreme Scale クライアント接続をホストし、この接続がすべてのアプリケーション・コンポーネントに対して再利用されます。
重要: eXtreme Scale クライアント接続にはニア・キャッシュが含まれることがあるため、アプリケーションは接続を共有してはなりません。 アプリケーション間でオブジェクトを共有する問題を回避するためには、単一のアプリケーション・インスタンスに対して接続ファクトリーが存在する必要があります。

接続ファクトリーは、すべての参照アプリケーション・コンポーネント間で共有される eXtreme Scale クライアント接続をホストします。Managed Bean (MBean) を使用して、クライアント接続に関する情報にアクセスしたり、不要になった接続をリセットしたりすることができます。

アプリケーション開発者の責任

アプリケーション開発者は、アプリケーション・デプロイメント記述子の中に、あるいはアノテーションを使用して、管理接続ファクトリーのリソース参照を作成します。 各リソース参照には、eXtreme Scale 接続ファクトリーのローカル参照とリソース共有スコープが含まれます。
重要: リソース共有によりアプリケーション・コンポーネント間でのローカル・トランザクションの共有が可能となるため、リソース共有を有効にすることが重要です。

アプリケーションは、接続ファクトリーを Java EE アプリケーション・コンポーネントに注入することもできれば、Java Naming Directory Interface (JNDI) を使用して接続ファクトリーを検索することもできます。 接続ファクトリーは、eXtreme Scale クライアント接続への接続ハンドルを取得するために使用されます。 eXtreme Scale クライアント接続は、リソース・アダプター接続とは別に管理されるもので、最初に使用されたときに確立され、その後のすべての接続で再利用されます。

アプリケーションは、接続を検出した後、eXtreme Scale セッション参照を検索します。 eXtreme Scale セッション参照により、アプリケーションは eXtreme Scale クライアント API およびフィーチャーの全体を使用することができます。

以下のいずれかの方法で、トランザクションを区分できます。
  • com.ibm.websphere.objectgrid.Session トランザクション区分メソッドを使用する。
  • javax.resource.cci.LocalTransaction ローカル・トランザクションを使用する。
  • 最終参加者サポートが有効な状態で WebSphere Application Server を使用するときに、グローバル・トランザクションを使用する。この区分方法を選択したときには次のようにする必要があります。
    • アプリケーション管理グローバル・トランザクションを javax.transaction.UserTransaction と一緒に使用する。
    • コンテナー管理トランザクションを使用する。

アプリケーション・デプロイヤーの責任

アプリケーション・デプロイヤーは、アプリケーション開発者が定義するリソース・アダプター接続ファクトリーへのローカル参照を、管理者が定義するリソース・アダプター接続ファクトリーにバインドします。 アプリケーション・デプロイヤーは、適切な接続ファクトリーのタイプとスコープをアプリケーションに割り当てるとともに、Java オブジェクトの共有を回避するためにアプリケーション間で接続ファクトリーが共有されないようにする必要があります。 アプリケーション・デプロイヤーはまた、すべての接続ファクトリーに共通する他の適切な構成情報の構成とマッピングも行う必要があります。