Workshop Web サービスをクラスタ化する

はじめに

クラスタは、スケーラビリティを提供し、Web リソースのフェイルオーバをサポートするために使用します。基本的なクラスタ化モデルは、以下の要素で構成されています。

  1. ステートを管理し、クラスタ内の他のサーバをコンフィグレーションする管理サーバ(1 台)

  2. クライアントからリクエストを受信し、ジョブをクラスタ内の他のサーバで分散処理させる(ハードウェアまたはソフトウェア)HTTP プロキシ サーバ(1 台)

  3. クライアントからのリクエストを実際に処理する管理対象サーバ(複数)

クラスタの全コンフィグレーションは管理サーバで行います。クラスタ内の全サーバは、管理サーバにある config.xml のコピーを使用します。クラスタ内の管理対象サーバが config.xml のローカル コピーを持っている場合もありますが、管理サーバ上と同じコピーが使用されるので、このコピーは無視されます。

Workshop EAR がクラスタにデプロイされると、それぞれの管理対象サーバも同様にコンフィグレーションされます。つまり、管理対象サーバはすべて、同じ JWS リソースのセットを実行します。あるサーバで EAR 内のある JWS を使用し、別のサーバで EAR 内の別の JWS を使用することはできません。Workshop の必須リソース、JDBCConnectionPool、JDBCTxDatasource、JMSQueueConnectionFactory も、クラスタ内の全サーバで共通にデプロイする必要があります。JMS サーバも Workshop の必須リソースですが、クラスタ内の 1 つのサーバにのみデプロイできます。

config.xml でのクラスタのコンフィグレーション

config.xml ファイルの完全な構文は、WebLogic Server 7.0 マニュアルの WebLogic Server コンフィグレーション リファレンスにあります。

次の節では、管理サーバにあるクラスタ定義の config.xml ファイルで最も重要ないくつかの要素について説明します。

<Cluster> 要素

ClusterAddress 属性は、サーバの IP のリストにマップする DNS 名を指定します。ClusterAddress は、マルチキャスト アドレスの DNS 名を指定しません。マルチキャスト アドレスでは、DNS 名は不要です。クラスタ全体をデプロイメントの対象として使用できます。J2EE リソースをクラスタ全体にデプロイするには、Name 属性の値をデプロイメントの対象として使用します。WebLogic Server 7.0 マニュアルの weblogic.Deployer-targets パラメータを参照してください。

リソースのデプロイメント

データベース接続プール、データ ソース、JMS サーバなど、クラスタ内のリソースは、管理サーバの config.xml ファイルで定義されます。リソースは、デフォルトではクラスタ全体で使用できません。リソースのデプロイ先となるサーバは、Targets 属性で指定します。

Workshop リソースは、クラスタ内のサーバに均一にデプロイする必要があります。つまり、クラスタ内の各サーバに同じ Workshop リソースを配布する必要があります。Workshop が利用する接続プールと対話データソースは、クラスタ内のそれぞれの管理対象サーバで定義します。たとえば、JDBConnectionPool 要素と JDBCDataSource 要素の Targets 属性でそれぞれの管理対象サーバを指定し、それぞれの管理対象サーバは、独自の接続プールを持つことになります。

Workshop が利用するキュー接続ファクトリは、それぞれの管理対象サーバで定義します。

ただし、JMSServer は 1 つの WLS サーバの対象にしかなりません。現在、Workshop は通常、クラスタ内の最初の管理対象サーバで 1 つの JMSServer のみを対象として使用します。

データベース サポート

Workshop クラスタは現在、Oracle 8.1.7 のみをサポートしています。サポートするデータベースを変更するには、config.xml で JDBC 要素を編集します。

プロキシ サーバ設定

クラスタは、ソフトウェア プロキシ サーバを使用して、HTTP リクエストをクラスタ内全体に分散できます。プロキシ サーバは、スプイレイヤまたはロード バランサとも言います。ソフトウェア プロキシは、プロキシ サーバにデプロイされた Web アプリケーションとして実装されます。プロキシ アプリケーションの WAR ファイルの web.xml 記述子を編集して、プロキシをコンフィグレーションします。記述子には、プロキシがリクエストを配信する IP アドレスおよびポートを指定するための項目があります。プロキシ サーバのコンフィグレーションについては、WebLogic Server 7.0 マニュアルのプロキシ プラグインのコンフィグレーションを参照してください。

関連トピック

クラスタのデプロイメント