WebSphere Application Server - Express for i5/OS, Version 6.1   
             オペレーティング・システム: i5/OS

             目次と検索結果のパーソナライズ化

EJB モジュールのコンテナー・トランザクションの定義

コンテナー・トランザクション・プロパティーでは、Enterprise Bean のメソッド呼び出しに関するトランザクション・スコープ を Enterprise JavaBeans (EJB) コンテナーが管理する方法を指定します。 トランザクション属性は、1 つ以上のメソッドにマップされます。 一部のコンテナー・トランザクション設定は、すべてのエンタープライズ Bean で使用できるわけではありません。 また、特定のトランザクション設定と Bean では使用できないメソッドもあります。 これらのルールは、EJB 1.1 および EJB 2.x 仕様をベースにした Add Container Transaction ウィザードで実装されています。

このタスクについて

コンテナー・トランザクションをエンタープライズ Bean に追加するには、以下のようにします。

プロシージャー

  1. J2EE パースペクティブの「Project Explorer」ビューで、 EJB プロジェクトの「Deployment Descriptor」を右クリックして、 「Open With」 > 「Deployment Descriptor Editor」 を選択して、デプロイメント記述子エディターを開きます。
  2. エディターの「Assembly」ページで、 「コンテナー・トランザクション」セクションの 「追加」をクリックします。
  3. 検索された Bean のリストから 1 つ以上のエンタープライズ Bean を選択します。
  4. 以下の選択項目からコンテナー・トランザクション・タイプを選択します。
    • NotSupported - トランザクション・コンテキストなしで Bean メソッドを 起動するようにコンテナーに指示します。 クライアントがトランザクション・コンテキストから Bean メソッドを呼び出すと、コンテナーは、 エンタープライズ Bean インスタンスでメソッドを呼び出す前に、 トランザクションと現行スレッドとの間の関連付けを一時的に中断します。 次に、メソッドの起動が戻されると、コンテナーは中断されていた関連付けを再開します。 中断されているトランザクション・コンテキストは、 この Bean メソッドが使用するどのエンタープライズ Bean オブジェクトまたは リソースにも渡されません。
    • Supports - クライアントがトランザクション内で Bean メソッドを 呼び出す場合、コンテナーがトランザクション・コンテキスト内で Bean メソッドを 呼び出すよう指示します。 クライアントがトランザクション・コンテキスト以外から Bean メソッドを呼び出すと、 コンテナーは、トランザクション・コンテキスト以外から Bean メソッドを呼び出します。 トランザクション・コンテキスト は、この Bean メソッドが使用するすべてのエンタープライズ Bean オブジェクト、 またはリソースに渡されます。
    • Required - コンテナーがトランザクション・コンテキスト内で Bean メソッド を呼び出すように指示します。 クライアントが、トランザクション・コンテキストから Bean メソッドを呼び出す場合には、 コンテナーは、クライアントのトランザクション・コンテキスト内で Bean メソッドを呼び出します。 クライアントがトランザクション・コンテキスト以外から Bean メソッドを呼び出す場合には、 コンテナーは、新規トランザクション・コンテキストを作成し、 そのコンテキストから Bean メソッドを呼び出します。トランザクション・コンテキスト は、この Bean メソッドが使用するすべてのエンタープライズ Bean オブジェクト、 またはリソースに渡されます。
    • RequiresNew - クライアントがトランザクション・コンテキストの内外どちらから Bean メソッドを 呼び出すかにかかわらず、コンテナーが必ず新規トランザクション・ コンテキスト内で Bean メソッドを呼び出すように指示します。 トランザクション・コンテキスト は、この Bean メソッドが使用するすべてのエンタープライズ Bean オブジェクト、 またはリソースに渡されます。
    • Mandatory - クライアントに関連付けられたトランザクション ・コンテキスト内で Bean メソッドを必ず呼び出すように、コンテナーに指示します。 クライアントがトランザクション・コンテキストなしで Bean メソッドを呼び出そうと すると、コンテナーはクライアントに javax.jts.TransactiononRequiredException 例外を スローします。 トランザクション・コンテキストは、 エンタープライズ Bean メソッドによりアクセスされるすべての EJB オブジェクトまたはリソースに渡されます。 これらのエンティティー Bean にアクセスする EJB クライアントは、 既存のトランザクション内でその処理を実行しなければなりません。 その他のエンタープライズ Bean の場合、エンタープライズ Bean または Bean メソッドは、「Bean 管理」値を実装するか、「必要」値または「新規が必要」値を使用する必要があります。非エンタープライズ Bean の EJB クライアントの場合、 このクライアントは javax.transaction.UserTransaction インターフェースを使用してトランザクションを呼び出す必要があります。
    • Never - トランザクション・コンテキスト内で Bean メソッド を呼び出すように、コンテナーに指示します。 クライアントがトランザクション・コンテキスト内から Bean メソッドを呼び出した場合、コンテナーは java.rmi.RemoteException 例外をスローします。 クライアントがトランザクション・コンテキスト以外から Bean メソッドを呼び出すと、 コンテナーは、「サポートしません」トランザクション属性が設定されている場合と同様に振る舞います。クライアントは、トランザクション・コンテキストなしでメソッドを呼び出さなければなりません。
  5. リストから 1 つ以上のメソッド要素を選択します。
  6. 「終了」をクリックします。

結果

コンテナー・トランザクションが追加されて、「コンテナー・トランザクション」セクションに表示されます。ここでは、コンテナー・トランザクションはコンテナー・トランザクション・タイプによってリストされます。

次の作業

コンテナー・トランザクションを定義した後で、 デプロイメント記述子エディターを使用してそれらを操作できます。 このエディターに関する情報は、WebSphere Application Server Express のドキュメンテーションにあります。



関連概念
EJB コンテナー
関連タスク
EJB モジュールのアセンブル
タスク・トピック    

ご利用条件 | フィードバック

最終更新: Jan 21, 2008 7:05:28 PM EST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.express.iseries.doc/info/iseriesexp/ae/tejb_addcontainertran.html