Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 互換編


5.5.1 POSTデータサイズでのリクエストの振り分けの概要

Webコンテナがクラスタ構成で配置されている場合,リダイレクタを使用して,POSTデータサイズごとにそれぞれのWebコンテナにリクエストを振り分けられます。この機能を使用すると,処理に時間が掛かる長大なPOSTデータのリクエストを,特定のWebコンテナに転送できます。これによって,長大なPOSTデータ以外のリクエストのスループットの低下や,レスポンス時間の低下を防ぐことができます。この方式でリクエストを振り分ける場合は,振り分け処理をする各Webコンテナに,それぞれWebアプリケーションがデプロイされていることが前提になります。ただし,各J2EEサーバにデプロイするWebアプリケーションが同一である必要はありません。

クラスタ構成でのPOSTデータサイズによるリクエストの振り分けには,POSTリクエスト振り分けワーカというワーカ定義を使用します。POSTリクエスト振り分けワーカには,振り分け先となるワーカプロセスのリストが定義されています。この定義を基に,ワーカプロセスに対するPOSTデータサイズの振り分けが実行されます。POSTリクエスト振り分けワーカの振り分け先となるワーカプロセスをPOSTリクエスト転送先ワーカといいます。

POSTリクエスト転送先ワーカへの振り分けは,HTTPリクエスト単位で実行されます。

注意事項

HTTP CookieまたはURL書き換えによる制御でセッションが管理されている場合でも,POSTデータサイズによる振り分けを設定しているときは,POSTデータサイズによって,リクエストの振り分け先が決定されます。このため,同一クライアントからのリクエストの場合でも,HttpSessionのセッションIDは引き継がれません。

例えば,J2EEサーバ1でHttpSessionのセッションIDを生成したあと,J2EEサーバ2へリクエストが転送された場合,J2EEサーバ2で新たにHttpSessionのセッションIDが生成されます。この場合,再度J2EEサーバ1にアクセスすると,クライアントではJ2EEサーバ2で生成されたHttpSessionのセッションIDを使用しているため,J2EEサーバ1で新たにHttpSessionのセッションIDが生成されます。このため,HttpSessionのセッションは引き継がれません。

なお,J2EEサーバ1でHttpSessionのセッションIDを生成したあと,J2EEサーバ2へリクエストが転送されても,J2EEサーバ2でHttpSessionのセッションIDが生成されない場合,再度J2EEサーバ1にアクセスすると,J2EEサーバ1で生成済みのHttpSessionのセッションIDがそのまま使用されます。