3.4.7 コンテナ管理のトランザクション(CMT)を使用する場合の処理概要と留意点
コンテナ管理のトランザクションを使用すれば,Enterprise Beanのビジネスメソッドが呼ばれる直前に自動的にトランザクションを開始し,ビジネスメソッドの処理が終了した直後に自動的にトランザクションをコミットできます。ユーザプログラムのコーディングとしてトランザクション管理処理をまったく記述する必要がなく,容易にリソースへのアクセスのトランザクションを管理できます。
コンテナ管理のトランザクションを使用する場合のシーケンスを示します。
コンテナ管理のトランザクションを使用する場合,次の点に留意して実装してください。
-
コンテナ管理のトランザクションを使用する場合,Enterprise Beanのメソッドごとにトランザクション属性を指定できます。指定できるのは,Required,RequiresNew,Mandatory,Supports,NotSupported,Neverのどれかです。トランザクションを使用する場合,DDの<transaction-type>タグにContainerを指定し,メソッドごとのトランザクション属性は<trans-attribute>タグに指定します。また,DDを使用しないで,アノテーションで定義することもできます。トランザクション属性の詳細については,マニュアル「アプリケーションサーバ 機能解説 基本・開発編(EJBコンテナ)」の「2.7.3 CMT」を参照してください。アノテーションについては,マニュアル「アプリケーションサーバ リファレンス API編」の「2. アプリケーションサーバで使用するアノテーションおよびDependency Injection」を参照してください。
-
トランザクションを開始したあとのビジネスメソッドの中でリソースにアクセスした場合には,そのリソースアクセスは自動的にトランザクション管理がされます。
-
トランザクション開始後に複数のリソースへアクセスする場合は,グローバルトランザクションに対応したリソースアダプタを使用し,リソースアダプタのトランザクションサポートレベルをXATransactionに設定する必要があります。
-
コンテナ管理のトランザクションを使用する場合,ユーザプログラムのコーディングとしてトランザクション管理のための処理を記述する必要はありません。
-
コンテナ管理のトランザクションはEnterprise Beanで使用できます。サーブレットおよびJSPでは使用できません。