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

             Inhaltsverzeichnis und Suchergebnisse personalisieren

Angepasste Advisor-Funktion erstellen

Eine angepasste Advisor-Funktion ist ein als Klassendatei bereitgestellter kurzer Java-Code, der vom Load-Balancer-Basiscode aufgerufen wird, um die Last eines Servers zu bestimmen. Der Basiscode stellt alle erforderlichen Verwaltungsdienste bereits, wie z. B. das Starten und Stoppen einer Instanz der angepassten Advisor-Funktion, das Bereitstellen von Status und Berichten, das Aufzeichnen von Protokolldaten in einer Protokolldatei sowie das Berichten der Advisor-Ergebnisse an die Managerkomponente.

Informationen zu dieser Task

Angepasste Advisor-Funktionen werden aufgerufen, nachdem native oder Standard-Advisor-Funktionen gesucht wurden. Wenn Load Balancer eine angegebenen Advisor-Funktion nicht in der Liste der Standard-Advisor-Funktionen findet, verwendet er die Liste der angepassten Advisor-Funktionen. Wenn der Load-Balancer-Basiscode eine angepasste Advisor-Funktion aufruft, geschieht Folgendes:
  1. Der Load-Balancer-Basiscode öffnet eine Verbindung zur Servermaschine.
  2. Wenn der Socket geöffnet wird, ruft der Basiscode die Funktion GetLoad der angegebenen Advisor-Funktion auf.
  3. Die Funktion GetLoad der Advisor-Funktion führt die Schritte aus, die der Benutzer für die Auswertung des Serverstatus definiert hat. Sie wartet unter anderem auch auf eine Antwort des Servers. Die Funktion wird nach dem Empfang der Antwort beendet.
  4. Anschließend schließt der Load-Balancer-Basiscode den Socket zum Server und übergibt die Lastinformationen an den Manager. Abhängig davon, ob die angepasste Advisor-Funktion im normalen Modus oder im Ersetzungsmodus ausgeführt wird, führt der Basiscode manchmal nach Beendigung der Funktion GetLoad zusätzliche Berechnungen durch.
Angepasste Advisor-Funktionen können so gestaltet werden, dass sie entweder im normalen Modus oder im Ersetzungsmodus mit Load Balancer interagieren. Die Auswahl der Betriebsart wird in der Datei der angepassten Advisor-Funktion als Parameter der Methode "constructor" angegeben. (Eine Advisor-Funktion kann nur in einem dieser Modi ausgeführt werden, der auf seiner Gestaltung basiert.
  • Im normalen Modus tauscht die angepasste Advisor-Funktion Daten mit dem Server aus. Der Basiscode der Advisor-Funktion misst die Zeit für den Austausch und berechnet den Lastwert. Der Basiscode übergibt dann diesen Lastwert an den Manager. Die angepasste Advisor-Funktion gibt den Wert null für Erfolg oder einen negativen Wert für einen Fehler zurück.

    Zur Angabe des normalen Modus müssen Sie das Flag "replace" der Methode "constructor" auf "false" setzen.

  • Im Ersetzungsmodus führt der Basiscode keine Zeitmessungen aus. Der angepasste Advisor-Code führt alle angegebenen, für die Advisor-Funktion spezifischen Anforderungen aus und gibt dann einen tatsächlichen Lastwert zurück. Der Basiscode akzeptiert den Lastwert und berichtet diesen unverändert an den Manager. Um bestmögliche Ergebnisse zu erzielen, sollten Sie die Lastwerte zwischen 10 und 1000 normalisieren, wobei 10 einen schnellen Server und 1000 einen langsamen Server angibt.

    Zur Angabe des Ersetzungsmodus müssen Sie das Flag "replace" der Methode "constructor" auf "true" setzen.

Wie alle Advisor-Funktion erweitert auch eine angepasste Advisor-Funktion die Funktionalität der Advisor-Basisklasse ADV_Base. Der Advisor-Basiscode führt die meisten Funktionen der Advisor-Funktion aus. So berichtet er beispielsweise Lastwerte an den Manager zurück, die im Wertigkeitsalgorithmus des Managers verwendet werden. Darüber hinaus stellt der Advisor-Basiscode Socket-Verbindungen her, schließt Sockets und stellt Sende- und Empfangsmethoden für die Advisor-Funktion bereit. Die Advisor-Funktion wird nur zum Senden von Daten an den Port bzw. zum Empfangen von Daten vom Port des überprüften Servers verwendet. Die im Advisor-Basiscode bereitgestellten TCP-Methoden sind zeitlich gesteuert, um die Last zu berechnen. Mit einem Flag der Methode "constructor" des Advisor-Basiscodes kann bei Bedarf die vorhandene Last mit der neuen, von der Advisor-Funktion zurückgegebenen Last überschrieben werden.
Anmerkung: Der Advisor-Basiscode stellt in angegebenen Intervallen die Last ausgehend von einem in der Methode "constructor" gesetzten Wert für den Wertigkeitsalgorithmus bereit. Wenn die Advisor-Funktion ihre Verarbeitung noch nicht abgeschlossen hat und keinen gültigen Lastwert zurückgeben kann, verwendet der Advisor-Basiscode den zuvor berichteten Lastwert.

Prozedur

  1. Benennen Sie Ihre Advisor-Funktion. Die Dateinamen angepasster Advisor-Funktionen müssen das Format "ADV_Name.java" haben, wobei Name für den von Ihnen für die Advisor-Funktion ausgewählten Namen steht.
    Probleme vermeiden:
    • Sie müssen für den Namen der Advisor-Funktion das Präfix "ADV_" verwenden.
    • Sie müssen für den Namen der angepassten Advisor-Funktion Kleinbuchstaben verwenden, damit der Bediener bei der Eingabe von Befehlen in einer Befehlszeile nicht auf die Groß-/Kleinschreibung achten muss.
    • Die angepasste Advisor-Klasse muss sich im Unterverzeichnis Installationsstammverzeichnis/lib/CustomAdvisors befinden.
    • Aufgrund von Java-Konventionen muss der Name der in der Datei definierten Klasse mit dem Namen der Datei übereinstimmen.
    gotcha
  2. Schreiben Sie Ihre angepasste Advisor-Funktion. Eine Liste der Methoden und Funktionsaufrufe, die in Ihrer Advisor-Funktion verwendet werden sollen, finden Sie unter Angepasste Advisor-Methoden und Funktionsaufrufe. Beachten Sie, dass angepasste Advisor-Funktionen alle erforderlichen Routinen haben müssen. Advisor müssen die folgenden Basisklassenmethoden haben:
    • Eine Routine "constructor". Der Konstruktor ruft den Basisklassenkonstruktor auf.
    • Eine Methode "ADV_AdvisorInitialize". Diese Methode bietet die Möglichkeit, zusätzliche Schritte auszuführen, nachdem die Initialisierung der Basisklasse abgeschlossen ist.
    • Eine Routine "getLoad". Die Basis-Advisor-Klasse führt das Öffnen des Sockets aus. Die Methode "getLoad" muss nur die entsprechenden Sende- und Empfangsanforderungen absetzen, um den Advisor-Zyklus zu beenden.

  3. Kompilieren Sie die Advisor-Funktion.
    • Sie müssen angepasste Advisor-Funktionen in der Programmiersprache Java schreiben und mit einem Java-Compiler kompilieren, der dieselbe Version wie der Load-Balancer-Code hat. Zum Überprüfen der auf Ihrem System vorhandenen Java-Version führen Sie den folgenden Befehl im Verzeichnis Installationsstammverzeichnis/java/bin aus:
      java -fullversion
      
      Wenn das aktuelle Verzeichnis nicht zu Ihrem Pfad gehört, müssen Sie angeben, dass Java aus dem aktuellen Verzeichnis ausgeführt werden soll, um sicherzustellen, dass Sie die richtigen Versionsinformationen erhalten. In diesem Fall führen Sie den folgenden Befehl im Verzeichnis Installationsstammverzeichnis/java/bin aus:
      ./java -fullversion
    • Während der Kompilierung wird auf die folgenden Dateien Bezug genommen:
    • Die Umgebungsvariable "classpath" muss während der Kompilierung auf beide Dateien (angepasste Advisor-Datei und Basisklassendatei) zeigen. Ein Kompilierbefehl kann das folgende Format haben, wenn sich die Advisor-Funktion im aktuellen Verzeichnis befindet:
      Installationspfad/java/bin/javac -classpath Installationsstammverzeichnis/servers/lib/ibmlb.jar ADV-Name.java
    • Die Ausgabe der Kompilierung ist eine Klassendatei, z. B. "ADV-Name.class". Kopieren Sie vor dem Starten der Advisor-Funktion die Klassendatei in das Verzeichnis Installationsstammverzeichnis/servers/lib/CustomAdvisors/.
    Anmerkung: Angepasste Advisor-Funktionen können unter einem Betriebssystem kompiliert und unter einem anderen Betriebssystem ausgeführt werden. Sie können Ihre Advisor-Funktion beispielsweise auf einem Windows-System kompilieren, die generierte Klassendatei im Binärformat auf eine Linux-Maschine kopieren und die angepasste Advisor-Funktion dort ausführen. Bei den Betriebssystemen AIX, HP-UX, Linux und Solaris ist die Syntax ähnlich.
  4. Führen Sie die angepasste Advisor-Funktion aus. Angepasste Advisor-Funktionen werden aufgerufen, wenn keine nativen oder Standard-Advisor-Funktionen gefunden werden. Wenn Load Balancer einen angegebenen Advisor nicht in der Liste der Standard-Advisor-Funktionen findet, verwendet er die Liste der angepassten Advisor-Funktionen.
    1. Kopieren Sie die Klassendatei der Advisor-Funktion in das Unterverzeichnis "CustomAdvisors" auf der Load-Balancer-Maschine, sofern Sie dies noch nicht getan haben. Für eine angepasste Advisor-Funktion mit dem Namen "myping" lautet der Dateipfad beispielsweise Installationsstammverzeichnis/servers/lib/CustomAdvisors/ADV_myping.class.
    2. Konfigurieren Sie Load Balancer, starten Sie die Managerfunktion, und setzen Sie den Befehl zum Starten der angepassten Advisor-Funktion ab. Die angepasste Advisor-Funktion wird mit dem Advisor-Namen ohne das Präfix "ADV_" und mit der Dateierweiterung angegeben:
      dscontrol advisor start Name.erw Port
      Die im Befehl angegebene Portnummer steht für den Port, an dem die Advisor-Funktion eine Verbindung zum Zielserver öffnet.



Untergeordnete Abschnitte
Angepasste Advisor-Methoden und -Funktionsaufrufe
Servicespezifische Empfehlungen mit der Anforderungs- bzw. Antwortoption der Advisor-Funktion abrufen
Advisor-Funktion "self" in einer Client/Server-WAN-Konfiguration
Zugehörige Referenzen
Task    

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/tprf_advcust.html