Interstage Application Server/Interstage Web Server J2EE ユーザーズガイド |
目次 索引 |
第2部 Servlet/JSP編 | > 第9章 セションリカバリ機能 | > 9.1 セションリカバリ機能について |
WebブラウザからのリクエストURIについて、拡張子を指定することにより、静的コンテンツなどに対してセションリカバリ機能を無効にすることが可能です。
セションリカバリ機能を無効とする拡張子は、Session Registry Client側で、Interstage管理コンソールの以下の項目で設定します。
Session Registry Clientの設定については、“Session Registry Clientの設定”を参照してください。また、Interstage管理コンソールの詳細については、Interstage管理コンソールのヘルプを参照してください。
isj2eeadminコマンドを使用して、上記の設定を行うこともできます。
isj2eeadminコマンドの詳細については、リファレンスマニュアル(コマンド編)の“isj2eeadmin”を参照してください。
この機能を使用する場面について説明します。
Webブラウザから、明にセションを使用する動的コンテンツ(ServletやJSP)以外、静的コンテンツ(htmlや、htmlに埋め込んでいる画像ファイル等全般を含む)へのリクエストがあった場合でも、静的コンテンツもWebアプリケーションの一部として扱われるため、セションが生成されている場合はセションのlastAccessedTime(セションに関連付けられた要求をクライアントが最後に送信した時刻)が更新されます。(Cookieを使用する設定の場合。)
そのため、静的コンテンツに対するリクエストであってもセションのバックアップが発生します。また、サーバダウンなどが発生した場合には、静的コンテンツに対してもセションのリカバリが行われます。
しかし、アプリケーションにとって静的コンテンツへのアクセスによるlastAccessedTimeの更新が特に重要ではない場合、性能への影響の防止および不要なリカバリ処理を発生させないため、拡張子を指定することによりセションのバックアップやリカバリを無効とすることが可能です。
- この定義を行ったリソースへアクセスした場合、Session Registry Serverへのバックアップは行われません。
したがって、この定義を行ったリソースのみにアクセスしている場合は、Session Registry Server上ではセションがタイムアウトし、バックアップから削除される可能性があります。
- フォームベース認証使用時には、認証情報はServletのセションに格納されます。
そのため、以下の場合では、セションは新規となり、再度認証が必要となることがあります。
- セションリカバリ機能有効、かつ
- Session Registry Client(Servletコンテナ)の[セションリカバリ設定]において、[セションを使用しないURLの末尾]として拡張子を指定している、かつ
- クライアントから、指定した拡張子のコンテンツに対するリクエストを行った、かつ
- IJServerの再起動等の操作を行った、またはIJServerの停止、異常終了等で、別のServletコンテナにリクエストが振り分けられた、かつ
- 該当コンテンツが認証の対象になっている。
次の図のような構成で、Webアプリケーションの独自ヘッダ(または独自のURLへの埋め込み文字列)によって負荷分散を行う場合、静的コンテンツへのリクエストには、これら独自の値が付加されないため、負荷分散装置はServletのセションを生成したIJServer以外のIJServerにリクエストを振り分けることがあります。この場合、IJServerは正常に動作しているにもかかわらずセションが他のIJServerにリカバリされることとなります(Cookieによるセション管理時)。
そのため、セションのリカバリが頻繁に動作し、レスポンスの低下を引きおこす原因となります。
上記のような負荷分散の場合、該当のコンテンツについては、セションリカバリ機能を無効とする必要があります。
目次 索引 |