セッション・データを共有可能にするアセンブル
デフォルト状態のセッション管理機能では、サーブレット 2.3 以降の API 仕様に従って、Web モジュール単位によるセッション有効範囲をサポートしています。特定のセッションに関連付けられたデータにアクセスできるのは、同一の Web モジュール内のサーブレットだけです。ただし、IBMApplicationSession オブジェクトか、または IBM® 拡張機能の共有セッション・コンテキストを使用すれば、Web モジュールの有効範囲外のデータを共有することができます。
このタスクについて
IBMApplicationSession オブジェクトは Web モジュールのセッションで取得できる親セッション・オブジェクトであり、ビジネス・レベル・アプリケーションのすべての Web モジュール間でセッション属性を共有できます。ビジネス・レベル・アプリケーションのデフォルトの有効範囲はエンタープライズ・アプリケーションです。 共有セッション・コンテキスト・オプションはセッション属性の有効範囲も拡張します。 共有セッション・コンテキスト拡張機能を使用する場合は、ビジネス・レベル・アプリケーション全体またはデフォルトのエンタープライズ・アプリケーションに対して、セッション・オブジェクトは 1 つだけ存在します。
ビジネス・レベル・アプリケーションに対して共有セッションを使用する場合は、セッション内に置かれるすべてのオブジェクトのクラス・ファイルが、分離した共有ライブラリーに存在し、すべてのアプリケーションで共通である必要があります。
IBMApplicationSession メソッドを使用する場合の利点は、それぞれの Web モジュールが各自のセッションを保持することができ、また、共有セッションへの参照も持つことができることです。
製品の前のバージョンからアプリケーションをマイグレーションする場合、 IBMApplicationSession メソッドでは、そのアプリケーションのアプリケーション・ロジックの変更を必要とします。
この共有セッション・コンテキスト拡張機能が使用可能になったエンタープライズ・アプリケーションの場合、このエンタープライズ・アプリケーション内の Web モジュールでのセッション管理構成は無視されます。エンタープライズ・アプリケーションで定義されているセッション管理構成は、 セッション管理がエンタープライズ・アプリケーション・レベルで上書きされた場合に使用されます。 そうでない場合は、Web コンテナー上のセッション管理構成が使用されます。あるビジネス・レベル・アプリケーション内の複数のエンタープライズ・アプリケーションを使用する場合、セッション管理構成はこのビジネス・レベル・アプリケーション内のすべてのアプリケーションと Web モジュールで共通である必要があります。
ビジネス・レベル・アプリケーションまたはエンタープライズ・アプリケーション内のすべての Web モジュールに定義された HttpSession リスナーは、セッション・イベントのために呼び出されます。リスナーが呼び出される順序は、保証されていません。ビジネス・レベル・アプリケーション全体でセッション・データを共有するには、以下を完了します。