サーブレット API は、 所定のサーバー・インスタンス内のセッションへの同時アクセスをサポートしています。 所定のサーバー・インスタンスにおいてセッションの同時変更が起きないようにするために、 WebSphere Application Server には、 所定のサーバー・インスタンスでのセッションへの同時アクセスを防止するためのオプションが用意されています。 これを防止するには、セッションに基づいて要求を同期化します。 このフィーチャーがオンになっていると、 要求に応じてセッションが取得されてから、 サーブレットが呼び出され、 サーブレットを実行している間、セッションをロックすることで要求が同期化されます。 同期化はセッションのメモリー・コピーに基づいて行なわれるという点に注意してください。 つまり、セッションの類縁性が確立できなかった場合、 このフィーチャーではセッションに基いてサーバー間の要求をシリアライズすることはできません。
セッション・データ・フィーチャーへのシリアライズ・アクセスを使用して、 サーブレットまたは JavaServer Pages の内部のセッション・オブジェクトを同期化することもできます。 アプリケーションは、セッション・マネージャーとのデッドロックが発生する可能性があるため、 サーブレットまたは JavaServer Pages の内部のセッション・オブジェクトを同期化できません。 セッション・マネージャーでは、複数のロック・メカニズムの使用が前提となっていないため、 デッドロックが発生します。 「シリアル・アクセスを許可する」という構成オプションを使用することによって、 一度にセッションにアクセスできる要求を 1 つに制限することができます。
このフィーチャーは、同じセッション・データが同時に修正される可能性があり、 アプリケーションがその状態を前提としていない場合にのみ使用してください。 このフィーチャーは、 セッションに基づいて要求をシリアライズする際にオーバーヘッドがかかります。
セッション・アクセスを同期化するには、以下のようにします。