セッション・データへのアクセスのシリアライズ

サーブレット API は、 所定のサーバー・インスタンス内のセッションへの同時アクセスをサポートしています。 所定のサーバー・インスタンスにおいてセッションの同時変更が起きないようにするために、WebSphere® Application Server には、所定のサーバー・インスタンスでのセッションへの同時アクセスを防止するためのオプションが用意されています。

このタスクについて

セッションへの並行アクセスを防止するには、セッションに基づいて要求を同期化します。 このフィーチャーがオンになっていると、 要求に応じてセッションが取得されてからサーブレットが呼び出され、サーブレットを開始している間、セッションをロックすることで要求が同期化されます。同期化はセッションのメモリー・コピーに基づいて行なわれるという点に注意してください。 つまり、セッション・アフィニティーが確立できなかった場合、 このフィーチャーではセッションに基づいてサーバー間の要求をシリアライズすることはできません。

セッション・データ・フィーチャーへのシリアライズ・アクセスを使用して、 サーブレットまたは JavaServer Pages の内部のセッション・オブジェクトを同期化することもできます。 アプリケーションは、セッション・マネージャーとのデッドロックが発生する可能性があるため、 サーブレットまたは JavaServer Pages の内部のセッション・オブジェクトを同期化できません。 セッション・マネージャーでは、複数のロック・メカニズムの使用が前提となっていないため、 デッドロックが発生します。 「シリアル・アクセスを許可する」という構成オプションを使用することによって、 一度にセッションにアクセスできる要求を 1 つに制限することができます。

このフィーチャーは、同じセッション・データが同時に修正される可能性があり、 アプリケーションがその状態を前提としていない場合にのみ使用してください。 このフィーチャーは、 セッションに基づいて要求をシリアライズする際にオーバーヘッドがかかります。

セッション・アクセスを同期化するには、以下のようにします。

手順

  1. セッション・アクセスをシリアライズするセッション管理のレベルを選択します
  2. 「Serialize Session」アクセスの下の「シリアル・アクセスを許可する」をクリックします。
  3. 実行を続行する前に、「 最大待機時間」ボックスに、サーブレットがセッションを待つ時間 (ミリ秒) を入力します。 デフォルトは 120000 ミリ秒、または 2 分です。
  4. セッションがまだ他のサーブレットによってロックされている場合でも、 サーブレットでそのセッションへのアクセス権を取得して通常の実行を続行したい場合は、「 タイムアウト時のアクセスを許可する」を選択します。 このボックスを選択しない場合、セッション要求がタイムアウトになると サーブレット実行は打ち切られます。
  5. 適用」をクリックします。
  6. 保存」をクリックします。

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



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