13.2.1 共有サーバーの構成のための接続ロード・バランシングの例

図13-1は、同じサービスsales.us.example.comの2つのインスタンスsales1およびsales2を持つ、Oracle RACの共有サーバー・データベースを示しています。インスタンスsales1およびsales2は、それぞれコンピュータsales1-serverおよびsales2-serverに常駐します。インスタンスsales1は1つのディスパッチャ、インスタンスsales2は2つのディスパッチャを持ちます。listenerという名前のリスナーは、それぞれノード1および2上で稼働しています。DISPATCHERSパラメータのlistener属性が構成され、両方のリスナーに対して情報のサービス登録が可能になっています。

図13-1 共有サーバーの構成のためのロード・バランシング環境

図13-1の説明が続きます
「図13-1 共有サーバーの構成のためのロード・バランシング環境」の説明

この例では、sales2-serverがロード量が最小のノード、sales2がロード量が最小のインスタンス、dispatcher2がロード量が最小のディスパッチャです。次のロード情報が登録されます。

  • 各インスタンスの1分当たりのロード量平均は、sales1の場合600、sales2の場合400になります。これは、sales1-serverに必要な処理が多い場合に発生する可能性があります。

  • 各インスタンスへの接続数は、sales1の場合200、sales2の場合300になります。

  • 各インスタンスへのディスパッチャ接続数は、dispatcher1の場合200、dispatcher2の場合100、dispatcher3の場合200になります。

  • sales1への接続数(200)は、その唯一のディスパッチャであるdispatcher1への接続数と同じです。

  • sales2の接続数(300)は、その2つのディスパッチャであるdispatcher2の接続数(100)とdispatcher3の接続数(200)の合計になります。

(LISTENER=listeners_sales)listeners_salesの値は、両方のサーバー上に存在するローカルのtnsnames.oraファイルによって、次のように決定します。

listeners_sales= 
 (DESCRIPTION= 
   (ADDRESS_LIST=
     (ADDRESS=(PROTOCOL=tcp)(HOST=sales1-server)(PORT=1521))
     (ADDRESS=(PROTOCOL=tcp)(HOST=sales2-server)(PORT=1521))))

環境に応じて、次のような処理が実行されます。次の各処理に付いている番号は、図13-2に示す矢印の番号に対応しています。

  1. LREGプロセスは、インスタンスsales1およびsales2を、両方のリスナーに登録します。リスナーは、インスタンスおよびディスパッチャのロード時に動的に更新されます。

  2. クライアントが接続要求を送信します。接続記述子が構成されプロトコル・アドレスが1つ成功するまで、各プロトコル・アドレスがランダムに試行されます。

    sales.us.example.com= 
     (DESCRIPTION= 
      (LOAD_BALANCE=on)
      (FAILOVER=on)
      (ADDRESS=(PROTOCOL=tcp)(HOST=sales1-server)(PORT=1521))
      (ADDRESS=(PROTOCOL=tcp)(HOST=sales2-server)(PORT=1521))
      (CONNECT_DATA=(SERVICE_NAME=sales.us.example.com)))
    

    sales1-server上のリスナーがランダムに選択されて、クライアント接続要求を受信します。

    sales1-server上のリスナーは、インスタンスsales1およびsales2のロード量を比較します。この比較では、ノードsales1-serverおよびsales2-server上のロード量がそれぞれ考慮されます。sales2-serverのロード量はsales1-serverのロード量より少ないため、リスナーは、sales1-serverよりsales2-serverを選択します。

  3. リスナーは、ディスパッチャdispatcher2のロード量とdispatcher3のロード量を比較します。dispatcher2のロード量はdispatcher3のロード量より少ないため、リスナーはクライアント接続要求をdispatcher2にリダイレクトします。

  4. クライアントは、dispatcher2に直接接続します。

図13-2 共有サーバーの構成のためのロード・バランシングの例

図13-2の説明が続きます
「図13-2 共有サーバーの構成のためのロード・バランシングの例」の説明