トランザクション・デプロイメント属性の構成

トランザクションのデプロイメント記述子の属性を EJB モジュールまたは Web モジュールに関連付けて構成すると、エンタープライズ・アプリケーションがそのトランザクションを使用できるようになります。

始める前に

アプリケーション・サーバーにデプロイ可能なアプリケーション・コンポーネントのエンタープライズ・アーカイブ (EAR) ファイルが存在している必要があります。

このタスクについて

アプリケーションのデプロイメント属性は、アセンブリー・ツールを使用して構成することができます。

Rational® Application Developer または同等のツールを使用して、アプリケーションのデプロイメント属性を構成できます。

Rational Application Developer を使用して、アプリケーション・コンポーネント (エンタープライズ Bean またはサーブレット) のデプロイメント記述子のトランザクション属性を設定するには、以下のステップを完了します。

手順

  1. アセンブリー・ツールを始動します。 詳しくは、Rational Application Developer の情報を参照してください。
  2. アプリケーション EAR ファイルを作成または編集します。 例えば、既存のアプリケーションの属性を変更するには、インポート・ウィザードを使用して EAR ファイルをアセンブリー・ツールにインポートします。 インポート・ウィザードを開始するには、次のようにします。
    1. 「ファイル」 > 「インポート」 > 「EAR ファイル」とクリックします。
    2. 次へ」をクリックして EAR ファイルを選択します。
    3. 「終了」をクリックします。
  3. Java EE パースペクティブの「プロジェクト・エクスプローラー」ビューでコンポーネント・インスタンスを右クリックし、 「アプリケーションから開く」 > 「デプロイメント記述子エディター」とクリックします。 コンポーネント・インスタンスを見つけるには、 適宜、次の手順を行います。
    • セッション Bean の場合は、「EJB モジュール」 > ejb_module_instance > 「デプロイメント記述子」 > 「セッション Bean」と展開し、Bean インスタンスを選択します。
    • サーブレットの場合は、「Web モジュール」 > web_application > 「デプロイメント記述子」 > web component と展開し、サーブレット・インスタンスを選択します。
    コンポーネントのデプロイメント記述子のプロパティー・ダイアログ・ノートブックがプロパティー・ペインに表示されます。
  4. オプション: セッション Bean の場合のみ、「トランザクション・タイプ」属性を設定します。この属性によって、コンテナーがメソッドを起動する際のトランザクションの方法が定義されます。 この属性は、以下のように、「コンテナー」または「Bean」に設定できます。
    • コンテナー管理トランザクションを使用する場合は、属性を「コンテナー」に設定します。
    • Bean 管理トランザクションを使用する場合は、属性を「Bean」に設定します。
  5. デプロイメント記述子ノートブックで、「Bean」タブを選択します。 オプションとして、「WebSphere 拡張」セクションでは、ローカル・トランザクション属性を構成します。 ローカル・トランザクション包含を管理できるようにするために、以下のコンポーネント拡張属性を構成します。 これらの属性は、コンポーネントに対して、グローバル・トランザクションが存在しない場合に必ずコンテナーが確立する、ローカル・トランザクション内包 (LTC) 環境の振る舞いを構成します。
    境界
    この設定では、そこに含まれるすべてのリソース・マネージャー・ローカル・トランザクション (RMLT) が完了している必要がある保持境界が指定されます。指定可能な値は、「BeanMethod」または「ActivitySession」です。
    • Bean メソッド: これはデフォルト値です。このオプションを選択する場合、RMLT は、開始される Bean メソッドと同じ Bean メソッドで解決される必要があります。
    • [EJB コンポーネントの場合のみ] ActivitySession: RMLT は、それが開始された ActivitySession の有効範囲内で解決されるか、ActivitySession コンテキストがない場合は、RMLT が開始された Bean メソッド内で解決される必要があります。
      注: ActivitySession オプションは Web コンテナーではサポートされていません。
    リゾルバー
    この設定では、RMLT の開始および終了を行うコンポーネントが指定されます。 指定可能な値は、「アプリケーション」または「ContainerAtBoundary」です。
    • アプリケーション: これはデフォルト値です。このアプリケーションは、ローカル・トランザクション内包 (LTC) 境界内で RMLT を開始したり完了したりする役割を担います。 LTC 境界の終了までに完了していない RMLT は、コンテナーによって、未解決のアクション属性の値でクリーンアップされます。
    • ContainerAtBoundary: このコンテナーによって、LTC 境界内で RMLT を開始したり完了することができます。 LTC 有効範囲内で接続が最初に使用されると、コンテナーは RMLT を開始し、LTC の終了で自動的に完了します。 境界が ActivitySession に設定されている場合、RMLT は ActivitySession リソースとしてリストされ、ActivitySession によって終了するよう指示されます。境界が BeanMethod に設定されている場合は、RMLT はメソッドの終わりにコンテナーによってコミットされます。
    未解決のアクション
    これらのトランザクションが LTC 境界の有効範囲の最後で未解決であり、リゾルバーがアプリケーションに設定されている場合、コンテナーが RMLT に要求する方向を指定します。 指定可能な値は「ロールバック」または「コミット」です。
    • ロールバック: これはデフォルト値です。LTC 境界の有効範囲の最後で、コンテナーは未解決のすべての RMLT にロールバックするように指示します。
    • コミット: LTC 境界の有効範囲の最後で、コンテナーは未解決のすべての RMLT にコミットするように指示します。 未処理の例外がない場合にのみ、コンテナーは RMLT にコミットするように指示します。 ローカル・トランザクション・コンテキストで実行中のアプリケーション・メソッドが例外で終了すると、未解決の RMLT はコンテナーによってロールバックされます。 これは、グローバル・トランザクションと同じ動作です。
    共有可能
    コンポーネントが LTC を共有できるかどうかを指定します。新規 LTC は、共有可能な LTC が存在していない場合のみ開始します。 共有可能 LTC を使用するアプリケーションは、共有可能 LTC で使用されているリソース・マネージャー接続を明示的にコミットまたはロールバックすることはできません (autoCommit 機能を持つ接続を使用することはできます)。

    リゾルバー属性が アプリケーションに設定されている LTC で、アプリケーションが非自動コミット作業を開始し、共有可能な属性が true に設定されている場合、実行時に例外がスローされます。 例えば、JDBC 接続では、非自動コミット作業とは、setAutoCommit(false) メソッドを使用して接続の自動コミット・オプションをオフに切り替えた後で、アプリケーションが実行する作業のことです。 Bean 管理トランザクション (BMT) を使用するエンタープライズ Bean を、LTC 構成上の共有可能な属性セットを使用してアセンブルすることはできません。

    LTC を共有するすべてのコンポーネントに対して Shareable 属性を指定する必要があります。共有可能な LTC を作成するコンポーネントによって、リゾルバー属性の値など、共有 LTC のその他のプロパティーが決定されます。

  6. 「WebSphere 拡張」セクションでは、グローバル・トランザクション属性を構成します。 これらの属性は、コンポーネントに対して、グローバル・トランザクションがある場合の振る舞いを構成します。
    コンポーネント・トランザクション・タイムアウト
    コンテナー管理トランザクションを使用するエンタープライズ Bean の場合のみ、 エンタープライズ Bean に代わってコンテナーが開始する新規グローバル・トランザクションの トランザクション・タイムアウトを秒単位で指定します。コンポーネントの代わりに開始されるトランザクションに対して、コンポーネント・トランザクション・タイムアウト設定は、アプリケーション・サーバーのトランザクション・サービス設定で構成されるデフォルトのトランザクション存続期間のタイムアウトの合計をオーバーライドします。

    以下の属性は、JAX-RPC アプリケーションの場合のみ WS-AtomicTransaction および WS-BusinessActivity サポートを有効にします。

    Web サービス・アトミック・トランザクションの使用
    エンタープライズ Bean の場合のみ、この属性が選択されている場合、アプリケーション・コンポーネントが Web サービス要求を行うと、アプリケーション・サーバーでの Web Services アトミック・トランザクション・サポートで説明されている WebSphere WS-AtomicTransaction サポートに従って、その Web サービス要求とともにトランザクション・コンテキストが伝搬されます。 この属性が選択されていない場合、Web サービス要求はトランザクション・コンテキストを 伝送しません。
    要求上の Web サービス・アトミック・トランザクションの送信
    Web コンポーネントの場合のみ、この属性が選択されている場合、アプリケーション・コンポーネントが Web サービス要求を行うと、アプリケーション・サーバーでの Web Services アトミック・トランザクション・サポートで説明されている WebSphere WS-AtomicTransaction サポートに従って、その Web サービス要求とともにトランザクション・コンテキストが伝搬されます。 この属性が選択されていない場合、Web サービス要求はトランザクション・コンテキストを 伝送しません。
    着信要求上での Web サービス・アトミック・トランザクションの使用
    Web コンポーネントの場合のみ、この属性が選択されている場合、Web アプリケーション・ コンポーネントは、受け取った WS-AtomicTransaction コンテキストの下で稼働するように準備されます。 Web アプリケーション・コンポーネントは、Supports のコンテナー・トランザクション・タイプでデプロイされたエンタープライズ Bean と同様の方法で、受け取った WS-AtomicTransaction コンテキストの 下で稼働することができます。 この属性が選択されていない場合、 Web アプリケーション・コンポーネントのコンテナーは、 NotSupported のコンテナー・トランザクション・タイプでデプロイされた エンタープライズ Bean の EJB コンテナーの振る舞いと同様の方法で、受け取ったトランザクション・コンテキストをすべて中断します。

    アプリケーションが JAX-WS を使用する場合、ポリシー・セットを作成し、WS-Transaction ポリシー・タイプをポリシー・セットに追加し、ポリシー・セットをサービスまたはクライアントに接続することによって、WS-AtomicTransaction または WS-BusinessActivity のサポートを有効にします。

    クライアントに接続されるポリシー・セットに WS-Transaction ポリシー・タイプが含まれる場合、Web サービス要求とともにアクティブ・グローバル・トランザクション・コンテキストが伝搬されます。これは、このトピックで前述のデプロイメント記述子「Web サービス・アトミック・トランザクションの使用」および「要求上の Web サービス・アトミック・トランザクションの送信」に類似した方法です。 また、WS-Transaction ポリシー・タイプが含まれる場合、サービスは受け取った WS-AtomicTransaction コンテキストの下で稼働します。これは、このトピックで前述のデプロイメント記述子「着信要求上での Web サービス・アトミック・トランザクションの使用」に類似した方法です。

  7. EJB コンポーネントの場合のみ。コンテナー管理トランザクションについては、エンタープライズ Bean のビジネス・メソッドにメソッド起動を委任する際に、コンテナーによるトランザクション境界の管理方法を構成します。
    1. デプロイメント記述子ノートブックで、「アセンブリー」タブを選択します。 「コンテナー・トランザクション」セクションにエンタープライズ Bean のメソッドの表が表示されます。
    2. エンタープライズ Bean のメソッドごとに、コンテナー・トランザクション・タイプを適切な値に設定します。 コンテナー・トランザクション・タイプのデフォルト値は Required で、これはトランザクションに関連してメソッド起動が発生することを意味します。 このトランザクションは、(ローカルまたはリモート) クライアント・コンポーネントのトランザクションであるか、またはクライアント・コンポーネントがトランザクションで実行されない場合は、コンポーネントのコンテナーによって開始される新規のトランザクションです。

    アプリケーションが ActivitySession を使用する場合、メソッド起動を委任する際に コンテナーがトランザクション境界をどのように管理するのかは、 このタスクで設定するコンテナー・トランザクション・タイプと、 EJB モジュールの ActivitySession デプロイメント属性の設定で説明されている ActivitySession 種類属性の両方に基づいて決まります。これら 2 つのプロパティー 間の関係について詳しくは、ActivitySession とトランザクション・コンテナー・ポリシーの組み合わせを参照してください。

  8. SOAP/JMS バインディングを使用し、WS-AtomicTransactions に参加する Web サービス・アプリケーションの場合、 前のステップで説明されているように、"JMS ルーター MDB" という名前のメッセージ駆動型 Bean の コンテナー・トランザクション・タイプを NotSupported の値に設定します。 SOAP/JMS バインディングを使用する Web サービス・アプリケーションは、アセンブルされた EAR に "JMS ルーター MDB" という名前のルーター・メッセージ駆動型 Bean を組み込みます。 Web サービスが SOAP/JMS バインディングを使用し、WS-AtomicTransactions に参加する場合、アプリケーション・サーバーでの Web Services アトミック・トランザクション・サポートで説明されているように、"JMS ルーター MDB" のコンテナー・トランザクション・タイプを NotSupported の値に設定します。

    SOAP/HTTP バインディングを使用し、WS-AtomicTransactions に参加する Web サービス・アプリケーションの場合、これを行う必要はありません。

  9. クライアント・アプリケーション・コンポーネントの場合のみ、必要に応じて、クライアントによってトランザクション区分のサポートを有効にします。 デプロイメント記述子ノートブックで、「JTA 区分の許可」チェック・ボックスを選択します。 このオプションにより、クライアント・コンテナーは、Java™ Transaction API (JTA) UserTransaction インターフェースをクライアント・コンポーネントの java:comp/UserTransaction にある JNDI にバインドします。 トランザクションのクライアント・サポートで説明されているように、クライアント・コンテナーでのトランザクション・サポートには制約があります。
  10. デプロイメント記述子の変更を保存します。
    1. デプロイメント記述子エディターを閉じます。
    2. プロンプトが出された場合は、「はい」をクリックして デプロイメント記述子に変更を保存します。
  11. アーカイブ・ファイルを検査します。 Rational Application Developer を使用するファイルの検査について詳しくは、Rational Application Developer の情報を参照してください。
  12. プロジェクトのメニューの「デプロイ」をクリックして、EJB デプロイメント・コードを生成します。
  13. オプション: アプリケーション・サーバーのインストール済み環境で、完了したモジュールをテストします。 モジュールを右クリックして、「サーバー上で実行」をクリックし、その結果表示されるウィザードの指示に従います。
    重要: 「サーバー上で実行」オプションは、単体テストにのみ使用してください。アセンブリー・ツールは、アプリケーション・サーバー・インストールを制御し、 アプリケーションがリモート側で公開される場合、アセンブリー・ツールは当該サーバーのサーバー構成ファイルを 上書きします。実動サーバーでは、「サーバー上で実行」オプションを使用しないでください。

次のタスク

アプリケーションのアセンブルが完了した後で、システム管理ツール (例えば、管理コンソール) を使用して、アプリケーションを実行するアプリケーション・サーバーに EAR ファイルをデプロイします。

トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tjta_entra2
ファイル名:tjta_entra2.html