Web アプリケーションで UserActivitySession を開始して、ActivitySession 内に有効範囲が設定された作業を実行するには、
このタスクを使用して ActivitySession デプロイメント属性を構成します。
始める前に
このタスクでは、WebSphere® Application Server でデプロイできるアプリケーション・エンタープライズ Bean を含むエンタープライズ・アーカイブ (EAR) ファイルがあることを前提としています。
詳しくは、アプリケーションのアセンブルに関するトピックを参照してください。
このタスクについて
アプリケーションのデプロイメント属性は、アセンブリー・ツールを使用して構成することができます。
このトピックでは、Rational® Application Developer を使用してデプロイメント属性を構成する方法について説明します。
Web アプリケーション用に ActivitySession デプロイメント属性を設定するには、以下のステップを実行します。
手順
- アセンブリー・ツールを始動します。 詳しくは、
Rational Application Developer の
情報を参照してください。
- Web モジュールを作成または編集します。 例えば、
既存のモジュールの属性を変更するには、とクリック
し、モジュールのアーカイブ・ファイルを選択します。 例えば、既存のモジュールの属性を変更するには、
インポート・ウィザードを使用して EAR ファイルまたは WAR ファイルをアセンブリー・ツールにインポートします。
インポート・ウィザードを開始するには、次のようにします。
- とクリックします。
- Web フォルダーを展開して、「WAR ファイル」をクリックし、
「次へ」をクリックします。
- WAR ファイルを選択して、「終了」をクリックします。
- Java EE パースペクティブの「Project Explorer」ビューで、
コンポーネント・インスタンスを右クリックし、「デプロイメント記述子エディター」を右クリックして、「アプリケーションから開く」をクリックします。 Web モジュールのプロパティー・ダイアログ・ノートブックがプロパティー・ペインに表示されます。
- プロパティー・ペインで、「拡張サービス」タブを選択します。
- 変更するサーブレットを選択します。
- 「ActivitySession」セクションで、「ActivitySession 制御種類」属性を「アプリケーション」、「コンテナー」、または「なし」のいずれかに設定します。
- アプリケーション
- Web アプリケーションは、以下のように、ActivitySession の開始および終了に対して責任を持ちます。
- アプリケーションが ActivitySession を開始するときに HttpSession がアクティブな場合は、コンテナーは ActivitySession を HttpSession と関連付ける。
- HttpSession がない状態で ActivitySession を開始する場合、アプリケーションは、ディスパッチ・メソッドが
完了する前に ActivitySession を確実に完了する必要がある。これ以外の場合、例外が発生します。
- HttpSession が、この ActivitySession 制御値を使用してアプリケーションにディスパッチされた要求に関連付けられており、その HttpSession がそれに関係した ActivitySession を持っている場合、コンテナーは、その ActivitySession のコンテキスト内にその要求をディスパッチする。例えば、コンテナーは、ディスパッチの前に ActivitySession コンテキストをスレッド上にレジュームします。
- Web アプリケーションは、トランザクションおよび ActivitySession の両方を使用できます。同じ ActivitySession の有効範囲内で開始したすべてのトランザクションは、
これらを開始した Web コンポーネントによって、同じ要求ディスパッチ内で終了させる必要があります。
- コンテナー
- サーブレットは、UserActivitySessions にアクセスできません。
サーブレットによって開始された HttpSession には、
コンテナーによって自動的に関連付けられた ActivitySession があり、
実行のスレッドに入れられています。
そのようなサーブレットが ActivitySession を含まない HttpSession を持つ要求によってディスパッチされると、
コンテナーによって ActivitySession が開始され、HttpSession とそのスレッドに関連付けられます。
Web アプリケーションは、トランザクションおよび ActivitySession の両方を使用できます。同じ ActivitySession の有効範囲内で開始したすべてのトランザクションは、
これらを開始した Web コンポーネントによって、同じ要求ディスパッチ内で終了させる必要があります。
- なし
- サーブレットは、UserActivitySession にアクセスできません。サーブレットにより開始された HttpSession に、コンテナーによって自動的に ActivitySession が関連付けられることはありません。
そのようなサーブレットが ActivitySession を含む HttpSession を持つ要求によってディスパッチされると、コンテナーによって、その ActivitySession のコンテキストにおいて要求がディスパッチされます。例えば、コンテナーは、ディスパッチの前に ActivitySession コンテキストをスレッド上にレジュームします。
- 変更を適用してアセンブリー・ツールをクローズするには、「OK」をクリックします。値を適用した後にも、その他の編集を行うため引き続きプロパティー・ダイアログをオープンしておく場合は、「
適用」をクリックします。
- デプロイメント記述子の変更を保存します。
- デプロイメント記述子エディターを閉じます。
- プロンプトが出された場合は、「はい」をクリックして デプロイメント記述子に変更を保存します。
- アーカイブ・ファイルを検査します。 Rational Application Developer を使用したファイルの検査について詳しくは、Rational Application Developer の情報を参照してください。
- プロジェクトのポップアップ・メニューの「デプロイ」をクリックして、EJB デプロイメント・コードを生成します。
- オプション: 完成したモジュールを WebSphere Application Server インストール済み環境でテストします。
モジュールを右クリックして、
「サーバー上で実行」をクリックし、
表示されるウィザードの指示に従います。
重要: 「サーバー上で実行」は、
単体テストにのみ使用してください。
アセンブリー・ツールは、WebSphere Application Server の
インストール環境を制御し、アプリケーションがリモート側で公開されると、アセンブリー・ツールは
当該サーバーのサーバー構成ファイルを上書きします。実動サーバーでは、「サーバー上で実行」オプションを使用しないでください。
次のタスク
アプリケーションをアセンブルしたら、システム管理ツールを使用して
、WAR ファイルをデプロイします。例えば、管理コンソールを使用するには、エンタープライズ・アプリケーションのデプロイおよび管理に関するトピックを参照してください。