[AIX HP-UX Linux Solaris Windows]

例: 標準 advisor の実装

以下の例では、標準カスタム advisor を使用する方法を具体的に示します。

このサンプル・ソース・コードは、標準 Load Balancer HTTP advisor の場合と 類似しています。これは次のように機能します。
  1. 送信要求の "HEAD/HTTP" コマンドが出されます。
  2. 応答が受信されます。情報は解析されませんが、この応答によって、getLoad メソッドは終了します。
  3. getLoad メソッドでは、成功を示す場合には 0 を、失敗を示す場合には -1 を戻します。

この advisor は通常モードで操作されるため、負荷測定は、ソケットのオープン、送信、受信、およびクローズ操作の実行に必要な経過時間 (ミリ秒) に 基づいて行われます。

package CustomAdvisors;
import com.ibm.internet.lb.advisors.*;
public class ADV_sample extends ADV_Base implements ADV_MethodInterface {
  static final String ADV_NAME ="Sample";
  static final int ADV_DEF_ADV_ON_PORT = 80;
  static final int ADV_DEF_INTERVAL = 7;
  static final String ADV_SEND_REQUEST =
        "HEAD / HTTP/1.0rnAccept: */*rnUser-Agent: " +
"IBM_Load_Balancer_HTTP_Advisor¥r¥n¥r¥n";

  //-------- 
  // コンストラクター
    public ADV_sample() { 
      super(ADV_NAME, "3.0.0.0-03.31.00", 
            ADV_DEF_ADV_ON_PORT, ADV_DEF_INTERVAL, "", 
            false); 
      super.setAdvisor( this );
   } 

  //-------- 
  // ADV_AdvisorInitialize
    public void ADV_AdvisorInitialize() { 
      return;                               // 通常は、空のルーチン
    } 

  //-------- 
  // getLoad
    public int getLoad(int iConnectTime, ADV_Thread caller) { 
      int iRc; 
      int iLoad = ADV_HOST_INACCESSIBLE;           // アクセス不能に初期化します
      
          iRc = caller.send(ADV_SEND_REQUEST);     // send the HTTP request to 
                                             // the server
    if (0 <= iRc) {                          // if the send is successful
      StringBuffer sbReceiveData = new StringBuffer("");   // allocate a buffer 
                                                           // for the response
iRc = caller.receive(sbReceiveData);         // 結果を受信します
      
      // 必要な場合は、ここで結果を解析します

            if (0 <= iRc) {          // if the receive is successful
        iLoad = 0;             // return 0 for success 
      }                        // (advisor's load value is ignored by
    }                          //  base in normal mode)
return iLoad; 
  } 
} 



関連資料
例: サンプル advisor
参照トピック 参照トピック    

ご利用条件 | フィードバック

最終更新最終更新: Jun 21, 2011 12:49:06 PM EDT
ファイル名: rprf_advexstand.html