WebSphere Application Server での HTTP セッション・マネージャーの構成

WebSphere® Application Server はセッション管理機能を備えていますが、要求の 数が増えるとパフォーマンスが低下します。WebSphere eXtreme Scale には、セッション・レプリカ生成、高可用性、優れたスケーラビリティー、および堅固な構成オプションを備えたセッション管理実装がバンドルされています。

始める前に

このタスクについて

WebSphere eXtreme Scale HTTP セッション・マネージャーは、キャッシング用に、組み込みサーバーとリモート・サーバーの両方をサポートします。
  • 組み込みシナリオ

    組み込みシナリオでは、サーブレットが実行される同じプロセス内で WebSphere eXtreme Scale サーバーが相互に連結されています。 セッション・マネージャーはローカルの ObjectGrid インスタンスと直接通信できるため、コストのかかるネットワーク遅延を回避することができます。

    WebSphere Application Server を使用している場合は、提供された wxs_home/session/samples/objectGrid.xml および wxs_home/session/samples/objectGridDeployment.xml ファイルを、ご使用の Web アーカイブ (WAR) ファイルの META-INF ディレクトリーに配置してください。アプリケーションが始動して、セッション・マネージャーと同じプロセス内の eXtreme Scale コンテナーを自動的に始動すると、eXtreme Scale がこれらのファイルを自動的に検出します。

    使用するレプリカ生成が同期レプリカ生成か非同期レプリカ生成かということ、および構成するレプリカの数に応じて、objectGridDeployment.xml ファイルを変更できます。

  • リモート・サーバー・シナリオ

    リモート・サーバー・シナリオでは、サーブレットとは異なるプロセスでコンテナー・サーバーが実行されます。セッション・マネージャーはリモートのコンテナー・サーバーと通信します。リモートのネットワーク接続のコンテナー・サーバーを使用するためには、カタログ・サービス・ドメインのホスト名およびポート番号によってセッション・マネージャーを構成する必要があります。そうすると、セッション・マネージャーは、eXtreme Scale クライアント接続を使用して、カタログ・サーバーおよびコンテナー・サーバーと通信します。

    コンテナー・サーバーを独立したスタンドアロン・プロセス内で開始する場合は、 セッション・マネージャーのサンプル・ディレクトリーで提供される objectGridStandAlone.xml ファイル と objectGridDeploymentStandAlone.xml ファイルを使用して、eXtreme Scale コンテナーを開始します。

手順

  1. アプリケーションを接合することで、アプリケーションがセッション・マネージャーを使用できるようにします。 セッション・マネージャーを使用するためには、適切なフィルター宣言をアプリケーションの Web デプロイメント記述子に追加する必要があります。 さらに、セッション・マネージャー構成パラメーターが、デプロイメント記述子内のサーブレット・コンテキスト初期化パラメーターという形式でセッション・マネージャーに渡されます。 この情報は、以下に示す複数の方法でアプリケーションに導入することができます。
    • WebSphere Application Server との自動接合

      アプリケーションのインストール時に、WebSphere eXtreme Scale HTTP セッション・マネージャーを使用するようにアプリケーションを構成できます。 また、アプリケーションまたはサーバーの構成を編集して、WebSphere eXtreme Scale HTTP セッション・マネージャーを使用することもできます。 詳しくは、WebSphere Application Server の HTTP セッション管理のためのアプリケーションの自動接続を参照してください。

    • カスタム・プロパティーを使用したアプリケーションの自動接合

      WebSphere Application Server または WebSphere Application Server Network Deployment でアプリケーションを実行している場合には、 アプリケーションを手動で接合する必要はありません。

      カスタム・プロパティーをセルまたはサーバーに追加して、そのスコープにある すべての Web アプリケーションに splicer.properties ファイルを設定します。次のステップを実行して、カスタム・プロパティーを構成します。

      1. WebSphere Application Server 管理コンソールで、カスタム・プロパティーを設定する 正しいパスにナビゲートし、splicer.properties ファイルの場所を指示します。
        • カスタム・プロパティーをすべてのアプリケーションまたは特定のアプリケーションに設定するには、「システム管理」 > 「セル」 > 「カスタム・プロパティー」をクリックします。
        • 特定のアプリケーション・サーバー上のすべてのアプリケーションに適用する カスタム・プロパティーを設定するには、「アプリケーション・サーバー」 > 「<server_name>」 > 「管理」 > 「カスタム・プロパティー」をクリックします。プロパティー名は com.ibm.websphere.xs.sessionFilterProps で、 その値はアプリケーションが必要とする splicer.properties ファイルの場所です。 ファイルの場所のパスは、例えば /opt/splicer.properties です。
      2. com.ibm.websphere.xs.sessionFilterProps カスタム・プロパティーを追加します。このカスタム・プロパティーの値には、編集する splicer.properties ファイルのロケーションが指定されています。 このファイルは、デプロイメント・マネージャーに存在します。セル・レベルのカスタム・プロパティーを使用して特定の アプリケーション用の splicer.properties ファイルを指示する必要がある場合は、 カスタム・プロパティーの名前を <application_name>,com.ibm.websphere.xs.sessionFilterProps のように入力します。 ここで、application_name は、カスタム・プロパティーを適用するアプリケーションの名前を示します。
      重要: 更新済み splicer.properties ファイルが、セッション・レプリカ生成の ために接合されるアプリケーションをホスティングしているアプリケーション・サーバーを 含んでいるすべてのノードで、同じパス上に存在することを確認してください。

      使用可能なスコープはセル、サーバー、 およびアプリケーションであり、デプロイメント・マネージャーで実行している場合にのみ使用可能です。別のスコープが必要な場合は、Web アプリケーションを手動で接合してください。

      要確認: 自動接合オプションは、 アプリケーションを実行しているすべてのノードの同じパスに splicer.properties ファイルが存在する場合にのみ機能する点にも注意してください。 Windows ノードと UNIX ノードがともに存在する混合環境では、 このオプションは使用できないため、アプリケーションを手動で接合する必要があります。
    • addObjectGridFilter スクリプトによるアプリケーションの接合
      eXtreme Scale とともに提供されるコマンド行スクリプトを使用して、フィルター宣言と構成によってアプリケーションをサーブレット・コンテキスト初期化パラメーターの形式で接合します。 WebSphere Application Server デプロイメントの場合、このスクリプトは <was_home>/optionalLibraries/ObjectGrid/session/bin/addObjectGridFilter.bat/sh にあります。 スタンドアロン・デプロイメントの場合、スクリプトは WXS_HOME/ObjectGrid/session/bin/addObjectGridFilter.sh/bat にあります。 oddObjectGridFilter スクリプトは 2 つのパラメーターを使用します。
      • アプリケーション - 接合するエンタープライズ・アーカイブ・ファイルへの絶対パス
      • 各種構成プロパティーが入ったスプライサー・プロパティー・ファイルへの絶対パス

      このスクリプトの使用形式は次のとおりです。

      [Windows]
      addObjectGridFilter.bat [ear_file] [splicer_properties_file]
      [Unix]
      addObjectGridFilter.sh [ear_file] [splicer_properties_file]
      [Unix] UNIX 上の WebSphere Application Server にインストールされている eXtreme Scale の使用例:
      1. cd wxs_home/optionalLibraries/ObjectGrid/session/bin
      2. addObjectGridFilter.sh /tmp/mySessionTest.ear was_root/optionalLibraries/ObjectGrid/session/samples/splicer.properties

      [Unix] UNIX 上のスタンドアロン・ディレクトリーにインストールされている eXtreme Scale の使用例:

      1. cd was_root/session/bin
      2. addObjectGridFilter.sh /tmp/mySessionTest.ear was_root/session/samples/splicer.properties
      接合されるサーブレット・フィルターは構成値のデフォルトを保持します。これらのデフォルト値は、2 番目の引数にあるプロパティー・ファイルで指定する構成オプションでオーバーライドできます。 使用できるパラメーターのリストについては、サーブレット・コンテキスト初期化パラメーターを参照してください。

      eXtreme Scale インストールとともに提供されるサンプルの splicer.properties ファイルを変更して使用することができます。 また、各サーブレットを拡張することによってセッション・マネージャーを挿入する、addObjectGridServlets スクリプトも使用できます。ただし、推奨スクリプトは addObjectGridFilter スクリプトです。

    • Ant ビルド・スクリプトによるアプリケーションの手動接合
      WebSphere eXtreme Scale には Apache Ant で使用できる build.xml ファイルが同梱されています。このファイルは WebSphere Application Server インストールの was_root/bin フォルダーに含まれています。 build.xml ファイルを変更して、セッション・マネージャー構成プロパティーを変更できます。構成プロパティーは splicer.properties ファイル内のプロパティー名と同一です。 build.xml を変更し、次のコマンドを実行して Ant プロセスを呼び出します。
      • [Unix] ant.shws_ant.sh
      • [Windows] ant.batws_ant.bat
      (UNIX) または (Windows)
    • Web 記述子の手動更新

      Web アプリケーションに同梱されている web.xml ファイルを編集して、フィルター宣言、そのサーブレット・マッピング、およびサーブレット・コンテキスト初期化パラメーターが組み込まれるようにします。 この方法はエラーを起こしやすいため、使用しないようにしてください。

    使用できるパラメーターのリストについては、サーブレット・コンテキスト初期化パラメーターを参照してください。
  2. アプリケーションをデプロイします。 サーバーやクラスターに対して通常使用する手順に従ってアプリケーションをデプロイしてください。 アプリケーションをデプロイした後、アプリケーションを始動することができます。
  3. アプリケーションにアクセスします。 これで、セッション・マネージャーおよび WebSphere eXtreme Scale と対話するアプリケーションにアクセスすることができます。

次のタスク

アプリケーションの装備時にセッション・マネージャーの構成属性の大多数を変更して、セッション・マネージャーを使用するようにすることができます。 これらの属性には、同期または非同期のレプリカ生成、メモリー内セッション・テーブル・サイズなどがあります。 アプリケーションの装備時に変更できる属性を別にすれば、アプリケーションのデプロイメント後に変更できるその他の構成属性は、WebSphere eXtreme Scale サーバー・クラスター・トポロジーと、それらのクラスターのクライアント (セッション・マネージャー) がそれらのクラスターに接続する方法に関係する属性のみです。
リモート・シナリオの動作: アプリケーション・セッション・データを ホスティングしている全データ・グリッドに Web コンテナー・クライアントから到達できない場合、クライアントは、 代わりに WebSphere Application Server の基本 Web コンテナーをセッション管理に使用します。 次のようなシナリオでは、データ・グリッドに到達できないことがあります。
  • Web コンテナーとリモート・コンテナー・サーバー間のネットワークの問題
  • リモート・コンテナー・サーバーのプロセスが停止した場合
sessionTableSize パラメーターによって 指定される、メモリー内に保持されるセッション参照の数は、セッションが基本 Web コンテナー内に 保管されている場合、そのまま維持されます。 セッション数が sessionTableSize の値を超えると、最長未使用時間を基にセッションが Web コンテナー・セッション・キャッシュで無効化されます。リモート・データ・グリッドが使用可能になると、Web コンテナー・キャッシュで 無効化されたセッションは、リモート・データ・グリッドからデータを取得し、データを 新規セッションにロードできます。リモート・データ・グリッド全体が使用不可なまま、セッションが セッション・キャッシュで無効化されると、ユーザー・セッション・データは失われます。このような問題があるため、負荷の下で システムを実行する場合、実動リモート・データ・グリッド全体をシャットダウンすることはしないでください。