Interstage Application Server/Interstage Web Server J2EE ユーザーズガイド
目次 索引 前ページ次ページ

第2部 Servlet/JSP編> 第9章 セションリカバリ機能> 9.1 セションリカバリ機能について

9.1.3 URIでのセションリカバリ機能の有効・無効

 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の更新が特に重要ではない場合、性能への影響の防止および不要なリカバリ処理を発生させないため、拡張子を指定することによりセションのバックアップやリカバリを無効とすることが可能です。

■Webアプリケーションの独自ヘッダ(独自のURLへの埋め込み文字列)で負荷分散する場合の注意

 次の図のような構成で、Webアプリケーションの独自ヘッダ(または独自のURLへの埋め込み文字列)によって負荷分散を行う場合、静的コンテンツへのリクエストには、これら独自の値が付加されないため、負荷分散装置はServletのセションを生成したIJServer以外のIJServerにリクエストを振り分けることがあります。この場合、IJServerは正常に動作しているにもかかわらずセションが他のIJServerにリカバリされることとなります(Cookieによるセション管理時)。
 そのため、セションのリカバリが頻繁に動作し、レスポンスの低下を引きおこす原因となります。

  1. アプリケーションの独自ヘッダで振り分けを行っている場合、静的コンテンツへのリクエストはセションAがついたリクエストであっても、WebサーバBにリクエストが振り分けられる可能性があります。
  2. リクエストのセションAはIJServerBのものではないため、Webサーバコネクタは振り分け先がありません。その場合任意のIJServer(この場合IJServerB)に振られます。
    (システム構成によっては内部定義が同じでそのままIJServerBに振られる場合もあります)
  3. セションAはIJServerBには存在しないため、Session Registry ServerからセションAを取得します。ServletコンテナAのセションAは破棄されます。

 上記のような負荷分散の場合、該当のコンテンツについては、セションリカバリ機能を無効とする必要があります。


目次 索引 前ページ次ページ

Copyright 2008 FUJITSU LIMITED