Das folgende Beispiel veranschaulicht, wie ein angepasster Standardadvisor verwendet wird.
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"; //-------- // Konstruktor 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; // normalerweise eine leere Routine } //-------- // getLoad public int getLoad(int iConnectTime, ADV_Thread caller) { int iRc; int iLoad = ADV_HOST_INACCESSIBLE; // initialisieren auf inaccessible (kein Zugriff) iRc = caller.send(ADV_SEND_REQUEST); // HTTP-Anforderung an den // Server senden if (0 <= iRc) { // wenn das Senden erfolgreich war StringBuffer sbReceiveData = new StringBuffer(""); // Puffer für die // Antwort zuordnen iRc = caller.receive(sbReceiveData); // Ergebnis empfangen // Ergebnis analysieren, falls erforderlich if (0 <= iRc) { // wenn der Empfang erfolgreich war iLoad = 0; // 0 für Erfolg zurückgeben } // (Lastwert des Advisors wird im } // normalen Modus vom Basiscode ignoriert) return iLoad; } }