WebSphere Load Balancer for IPv4 and IPv6
             Betriebssysteme: AIX, HP-UX, Linux, Solaris, Windows

             Inhaltsverzeichnis und Suchergebnisse personalisieren

Beispiel: Standard-Advisor-Funktionen implementieren

Das folgende Beispiel veranschaulicht, wie eine angepasste Standard-Advisor-Funktion verwendet wird.

Dieser Beispielquellcode gleicht der Standard-HTTP-Advisor-Funktion für Load Balancer. Er funktioniert wie folgt:
  1. Es wird eine Sendeanforderung (Befehl "HEAD/HTTP") abgesetzt.
  2. Es wird eine Antwort empfangen. Die Informationen werden nicht syntaktisch analysiert, aber die Antwort bewirkt, dass die Methode "getLoad" beendet wird.
  3. Die Methode "getLoad" gibt 0 für Erfolg oder -1 für einen Fehler zurück.

Dieser Advisor arbeitet im normalen Modus. Die Lastmessung basiert somit auf der abgelaufenen Zeit (in Millisekunden), die für das Öffnen des Sockets, das Senden, das Empfangen und das Schließen des Sockets benötigt wurde.

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;                               // gewöhnlich eine leere Routine
    }

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

    public int getLoad(int iConnectTime, ADV_Thread caller) {
      int iRc;
      int iLoad = ADV_HOST_INACCESSIBLE;           // als unzugänglich initialisieren

      iRc = caller.send(ADV_SEND_REQUEST);         // HTTP-Anforderung an den
                                                   // Server senden
      if (0 <= iRc) {                              // Nach erfolgreichem Senden
        StringBuffer sbReceiveData = new StringBuffer("");      // Puffer für die
                                                                // Antwort reservieren
      iRc = caller.receive(sbReceiveData);         // Ergebnis empfangen

      // Ergebnis hier bei Bedarf syntaktisch analysieren

      if (0 <= iRc) {                              // Bei erfolgreichem Empfang
        iLoad = 0;                                 // 0 zurückgeben
      }                                            // (Lastwert des Advisors wird im
    }                                              // normalen Modus vom Basiscode ignoriert)
    return iLoad;
  }
} 



Zugehörige Referenzen
Beispiel: Beispiel-Advisor-Funktion
Referenz    

Nutzungsbedingungen | Feedback

Letzte Aktualisierung: 31. Juli 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