Application Server, Enterprise Edition 8.2 は、ロードバランスと HTTP セッション持続をサポートします。ロードバランスの主な目標は、作業負荷を複数のサーバーインスタンスに分散することによって、システムの全体的なスループットを向上させることです。
HTTP セッションフェイルオーバーの設定については、『Sun Java System Application Server Enterprise Edition 8.2 高可用性 (HA) 管理ガイド』の「HTTP セッションフェイルオーバー」を参照してください。
6.x の HTTP アプリケーションを Application Server 8.2 EE 環境に移行してロードバランス機能を有効にするには、次の手順を実行します。アプリケーション内のコードを変更する必要はありません。
少なくとも 2 つのアプリケーションサーバーインスタンスが作成および設定されていることを確認します。
ias-web-app.xml の名前を sun-web.xml に変更します。
配備記述子の移行の詳細については、「Application Server 6.x からの配備記述子の移行」を参照してください。
<DOCTYPE 定義を次のコードで更新します。
<!DOCTYPE web-app PUBLIC ’-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN’ ’http://java.sun.com/j2ee/dtds/web-app_2_3-1.dtd’>
Sun ONE Application Server 6.5 では、HTTP アプリケーションのフェイルオーバーは Dsync 機構に基づいて行われていました。HTTP フェイルオーバーの設定は ias-web-app.xml ファイルで行われていました。
<servlet-info> 要素の下に定義された <server-info> 要素は、サーブレットの保存先となるサーバーが有効になっているかどうかを指定します。
<session-info> 要素は、次の情報を定義します。
dsync-type: この要素は、値として dsync-distributed または dsync-local を取ります。
dsync-distributed は、セッションが分散され、すべての設定済みサーバーで使用可能であることを示します。
dsync-local は、セッションがその作成元のサーバー上でのみ使用可能であることを示します。
impl: この要素は、値として distributed または lite を取ります。
distributed は、セッションが分散されていることを示します。
lite は、セッションがその作成元である Java エンジンに対してローカルであることを示します。この値が設定されている場合、dsync-type の設定値は無視されます。
Sun Java System Application Server 8.2 で HTTP ルート上のアプリケーションのフェイルオーバーを有効にするには、Sun 固有の Web アプリケーション配備記述子ファイルである sun-web.xml に次のプロパティーを定義します。
persistence-store - このプロパティーは、値として memory、file、または ha を取ります。ただし、6.5 ではメモリーベースの持続性ストアのみがサポートされていました。
persistence-scope - 持続性のスコープを定義します。
session - すべてのセッションで、セッション情報が保存されます。
modified-session - 変更されたセッションデータのみが格納されます。
modified-attribute - 変更された属性データのみが格納されます。6.5 では、modified-attribute スコープのみがサポートされていました。
persistenceFrequency - 頻度を Web メソッド単位または時間ベースに設定できます。6.5 では、web-method のみがサポートされていました。
web-method - セッション状態は、各 Web 要求の終了時に、クライアントに応答を返信する前に格納されます。このモードでは、障害発生時にセッション状態を完全に更新するための最良の保証が得られます。
time-based - セッション状態は、指定された頻度でバックグラウンドで格納されます。このモードでは、セッション状態が必ずしも完全に更新される保証は得られません。ただし、各要求後に状態が格納されないので、パフォーマンスが大幅に向上します。
sun-web.xml ファイルの例を次に示します。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE sun-web-app PUBLIC '-//Sun Microsystems, Inc.// DTD Sun ONE Application Server 7.1 Servlet 2.3//EN' "http://www.sun.com/software/sunone/appserver/dtds/sun-web-app_2_3-1.dtd'> <sun-web-app> <session-config> <seession-manager> <manager-properties> <property name="persistence-type" value "ha'> <property name="persistenceFrequency" value ="web-based"> </manager-properties> <store-properties> <property name="persistenceScope" value="session"> </store-properties> </session-manager> </session-config> </sun-web-app>
sun-web.xml 設定ファイルの詳細については、『Sun Java System Application Server Enterprise Edition 8.2 Developer’s Guide』の「The sun-web.xml File」を参照してください。
Sun Java System Application Server 8.2 で HTTP 要求の負荷を分散し、障害発生時に要求をクラスタ内の使用可能なサーバーインスタンスに継続するには、ロードバランサプラグインをインストールして設定する必要があります。
ロードバランサの詳細については、『Sun Java System Application Server Enterprise Edition 8.2 高可用性 (HA) 管理ガイド』の第 5 章「HTTP 負荷分散の設定」を参照してください。
load-balancer.xml ファイルで、web-module enabled 要素が true に設定されていることを確認します。
<loadbalancer> <cluster name=cluster1> ... <web-module context-root="abc" enabled=true> </cluster> <property name="https-routing" value="true"/> </loadbalancer>
enabled=true は、要求の負荷分散先となる Web モジュールがアクティブである (有効になっている) ことを示します。
https-routing プロパティーを定義し、その値を true に設定します。
load-balancer.xml ファイルの編集の詳細については、『Sun Java System Application Server Enterprise Edition 8.2 高可用性 (HA) 管理ガイド』の第 5 章「HTTP 負荷分散の設定」を参照してください。
ロードバランスに参加しているすべてのサーバーインスタンスにアプリケーションを配備します。