WebSphere Load Balancer per IPv4 e IPv6
             Sistemi operativi: AIX, HP-UX, Linux, Solaris, Windows

             Personalizzazione dell'indice e dei risultati della ricerca

Esempio: Implementazione di advisor standard

Il seguente esempio mostra come utilizzare un advisor personalizzato standard.

Questo codice sorgente di esempio è simile all'advisor HTTP Load Balancer standard. Esso funziona come riportato di seguito:
  1. Viene emessa una richiesta di invio, ovvero un comando "HEAD/HTTP".
  2. Viene ricevuta una risposta. Le informazioni non sono analizzate, ma la risposta provoca la terminazione del metodo getLoad.
  3. Il metodo getLoad restituisce 0 per indicare una riuscita o -1 per indicare un errore.

Questo advisor funziona in modalità normale, pertanto la misurazione del carico si basa sul tempo trascorso (espresso in millisecondi) richiesto per eseguire le operazioni di apertura socket, di invio, di ricezione e chiusura.

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.0\r\nAccept: */*\r\nUser-Agent: " + 
    "IBM_Load_Balancer_HTTP_Advisor\r\n\r\n";

  //-------- 
  // Constructor
    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;                               // di solito una routine vuota
    } 

  //-------- 
  // getLoad 

    public int getLoad(int iConnectTime, ADV_Thread caller) {
      int iRc;
      int iLoad = ADV_HOST_INACCESSIBLE;           // initializzazione su inaccessibile

      iRc = caller.send(ADV_SEND_REQUEST);         // inviare la richiesta HTTP al
                                                   // server
      if (0 <= iRc) {                              // se l'invio riesce
        StringBuffer sbReceiveData = new StringBuffer("");      // si assegna un buffer
                                                                // per la risposta
      iRc = caller.receive(sbReceiveData);         // viene ricevuto il risultato

      // parse the result here if you need to 

      if (0 <= iRc) {                              // se la ricezione riesce
        iLoad = 0;                                 // viene restituito 0
      }                                            // (il valore di carico dell'advisor viene ignorato
    }                                              // dalla base in modalità normale)
    return iLoad;
  }
} 



Riferimento correlato
Esempio: advisor di esempio
Argomento di riferimento    

Termini di utilizzo | Feedback

Ultimo aggiornamento: 31 lug 2008 3:18:06 PM EDT
http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=/com.ibm.websphere.edge.doc/lb/info/ae/rprf_advexstand.html