Sun Cluster Entwicklerhandbuch Datendienste für Solaris OS

Verwenden von Agent Builder

Dieser Abschnitt beschreibt, wie Agent Builder verwendet wird, einschließlich der Aufgaben, die vor dem Einsatz von Agent Builder ausgeführt werden müssen. Der Abschnitt erläutert auch, auf welche Arten Agent Builder nach dem Generieren des Ressourcentypcodes eingesetzt werden kann.

Analysieren der Anwendung

Bevor Sie Agent Builder verwenden, müssen Sie entscheiden, ob die Anwendung den Kriterien für hohe Verfügbarkeit bzw. Skalierbarkeit entspricht. Agent Builder kann diese Analyse nicht ausführen, die lediglich auf den Laufzeiteigenschaften der Anwendung basiert. Analysieren der Eignung einer Anwendung enthält weitere Informationen zu diesem Thema.

Agent Builder ist möglicherweise nicht immer in der Lage, einen vollständigen Ressourcentyp für Ihre Anwendung zu erstellen. In den meisten Fällen kann Agent Builder jedoch zumindest eine teilweise Lösung liefern. Kompliziertere Anwendungen benötigen zum Beispiel eventuell zusätzlichen Code, den Agent Builder nicht standardmäßig generiert, wie Code zum Hinzufügen von Validierungsprüfungen für zusätzliche Eigenschaften oder zum Einstellen von Parametern, die Agent Builder nicht vorgibt. In diesen Fällen müssen Sie Änderungen an dem generierten Quellcode oder an der RTR-Datei vornehmen. Agent Builder ist für diese flexible Arbeitsweise besonders geeignet.

Agent Builder fügt an bestimmten Stellen des generierten Quellcodes Kommentare ein. Hier können Sie Ihren eigenen spezifischen Ressourcentypcode hinzufügen. Nachdem Sie den Quellcode geändert haben, können Sie das von Agent Builder generierte Makefile verwenden, um den Quellcode neu zu kompilieren und das Ressourcentyppaket neu zu generieren.

Selbst wenn Sie den gesamten Ressourcentypcode selbst schreiben und keinen von Agent Builder generierten Code verwenden, können Sie das von Agent Builder bereitgestellte Makefile und die Struktur zum Erstellen eines Solaris-Pakets für Ihren Ressourcentyp nutzen.

Installieren und Konfigurieren von Agent Builder

Agent Builder muss nicht eigens installiert werden. Das Tool ist im SUNWscdev-Paket enthalten, das standardmäßig als Teil einer Sun Cluster-Standardsoftwareinstallation installiert wird. Weitere Informationen hierzu finden Sie im Sun Cluster Software Installation Guide for Solaris OS. Folgende Informationen sollten vor der Verwendung von Agent Builder überprüft werden.


Hinweis –

Mit Agent Builder kann auch ein anderer Compiler als der cc-Standard-Compiler verwendet werden. Eine Möglichkeit ist das Erstellen einer symbolischen Verknüpfung in $PATH von cc zu einem anderen Compiler, wie gcc. Es kann auch die Compiler-Spezifikation im Makefile (aktuell CC=cc) in den vollständigen Pfad für einen anderen Compiler geändert werden. Ändern Sie zum Beispiel im von Agent Builder generierten Makefile CC=cc in CC=Pfadname/gcc. In diesem Fall können Sie Agent Builder nicht direkt ausführen, sondern müssen die Befehle make und make pkg ausführen, um Datendienstcode und ein Paket zu generieren.


Starten von Agent Builder

Agent Builder wird durch die Eingabe des folgenden Befehls gestartet:


% /usr/cluster/bin/scdsbuilder

Der Startbildschirm von Sun Builder wird angezeigt (siehe die folgende Abbildung).

Abbildung 9–1 Startbildschirm

Dialogfeld mit dem Titel “SunPlex Agent Builder”, das den Hauptbildschirm von Agent Builder anzeigt


Hinweis –

Auf Agent Builder kann über eine Befehlszeilenschnittstelle zugegriffen werden (siehe Verwenden der Befehlszeilenversion von Agent Builder), wenn der Zugriff auf die GUI-Version nicht möglich ist.


Agent Builder verfügt über zwei Bildschirme, die Sie durch die Erstellung eines neuen Ressourcentyps führen:

  1. Create—In diesem Bildschirm geben Sie grundlegende Informationen zu den zu erstellenden Ressourcentyp ein, wie den Namen und das Arbeitsverzeichnis (das heißt das Verzeichnis, in dem Sie die Ressourcentypvorlage erstellen und konfigurieren) für die generierten Dateien. Hier wird auch festgelegt, welche Art Ressource erstellt wird (Scalable oder Failover), ob die Basisanwendung Netzwerkunterstützung hat (das heißt, ob sie das Netzwerk für die Kommunikation mit den Clients verwendet), sowie der zu generierende Codetyp (C, ksh oder GDS). Weitere Informationen zu GDS (Generic Data Service) finden Sie in Kapitel 10. Sie müssen die Informationen in diesen Bildschirm eingeben und Create auswählen, um die entsprechende Ausgabe zu generieren, bevor der Bildschirm “Configure” angezeigt werden kann.

  2. Configure—Auf diesem Bildschirm werden Sie aufgefordert, einen Befehl zum Starten der Anwendung anzugeben. Optional können Sie Befehle zum Stoppen und Testen der Anwendung angeben. Wenn Sie diese Befehle nicht angeben, verwendet die generierte Ausgabe Signale zum Stoppen der Anwendung und stellt einen Standard-Testsignalmechanismus bereit (siehe die Beschreibung des Testsignal-Befehls in Verwenden des Bildschirms “Configure”). Über diesen Bildschirm können auch die Zeitüberschreitungswerte für jeden dieser drei Befehle geändert werden.


Hinweis –

Wenn Sie Agent Builder vom Arbeitsverzeichnis für einen vorhandenen Ressourcentyp aus starten, initialisiert Agent Builder die Bildschirme “Create” und “Configure” mit den Werten des vorhandenen Ressourcentyps.


Siehe Navigieren in Agent Builder bei Fragen zur Verwendung der Schaltflächen oder Menübefehle für die Agent Builder-Bildschirme.

Verwenden des Bildschirms “Create”

Als erster Schritt für die Erstellung eines Ressourcentyps muss der Bildschirm “Create” ausgefüllt werden. Dieser Bildschirm wird beim Starten von Agent Builder angezeigt. Die folgende Abbildung zeigt den Bildschirm “Create” nach der Eingabe von Informationen in die Felder.

Abbildung 9–2 Bildschirm “Create”

Dialogfeld, das den Bildschirm “Create” nach Eingabe von Informationen anzeigt

Der Bildschirm “Create” enthält die folgenden Felder, Optionsfelder und Kontrollkästchen:


Hinweis –

Wenn sich der cc-Compiler nicht in $PATH befindet, stellt Agent Builder das C-Optionsfeld abgeblendet dar und aktiviert das Feld ksh. Informationen zum Angeben eines anderen Compilers finden Sie im Hinweis am Ende von Installieren und Konfigurieren von Agent Builder.


Klicken Sie nach Eingabe der erforderlichen Informationen auf die Schaltfläche Create. Das Ausgabeprotokoll unten im Bildschirm zeigt an, welche Aktionen Agent Builder ausführt. Sie können im Menü “Edit” den Befehl Save Output Log verwenden, um die Informationen im Ausgabeprotokoll zu speichern.

Anschließend zeigt Agent Builder entweder eine Erfolgsmeldung oder eine Warnmeldung an, die darauf hinweist, dass dieser Schritt nicht ausgeführt werden konnte, und dass Sie dem Ausgabeprotokoll weitere Einzelheiten entnehmen können.

Wenn Agent Builder erfolgreich beendet wird, können Sie auf Next klicken, um den Bildschirm “Configure” anzuzeigen. Dort können Sie die Generierung des Ressourcentyps fertig stellen.


Hinweis –

Obwohl sich der Prozess zum Generieren eines vollständigen Ressourcentyps aus zwei Schritten zusammensetzt, können Sie Agent Builder nach Beenden des ersten Schritts (Create) beenden, ohne die eingegebenen Informationen oder die von Agent Builder geleistete Arbeit zu verlieren (siehe Wiederverwenden fertiger Arbeiten).


Verwenden des Bildschirms “Configure”

In der folgenden Abbildung wird der Bildschirm “Configure” gezeigt. Dieser Bildschirm wird angezeigt, nachdem Agent Builder die Erstellung des Ressourcentyps beendet hat und Sie im Bildschirm “Create” auf Next geklickt haben. Auf den Bildschirm “Configure” kann erst dann zugegriffen werden, wenn der Ressourcentyp erstellt worden ist.

Abbildung 9–3 Bildschirm “Configure”

Dialogfeld, das den Bildschirm “Configure” zeigt

Der Bildschirm “Configure” enthält folgende Felder:

Verwenden der $hostnames-Variablen von Agent Builder

Für viele Anwendungen, insbesondere Anwendungen mit Netzwerkunterstützung, muss der Hostname, auf dem die Anwendung Kundenanforderungen abhört und beantwortet, der Anwendung an der Befehlszeile angegeben werden. Daher ist der Hostname in vielen Fällen ein Parameter, der für Start-, Stopp- und Testsignal-Befehle für den Zielressourcentyp angegeben werden muss (auf dem Bildschirm “Configure”). Der Hostname, auf dem die Anwendung abhört, ist jedoch Cluster-spezifisch—er wird festgelegt, wenn die Ressource auf einem Cluster ausgeführt wird und kann nicht festgelegt werden, wenn Agent Builder den Ressourcentypcode generiert.

Zum Beheben dieses Problems stellt Agent Builder die $hostnames-Variable bereit, die Sie an der Befehlszeile für die Start-, Stopp- und Testsignal-Befehle angeben können. Sie geben die $hostnames-Variable genau so an, wie Sie dies mit einem tatsächlichen Hostnamen tun würden, zum Beispiel:


/opt/network_aware/echo_server -p Port-Nummer -l $hostnames

Wenn eine Ressource des Zielressourcentyps auf einem Cluster ausgeführt wird, ersetzt der für diese Ressource konfigurierte LogicalHostname bzw. SharedAddress-Hostname für die Ressource (in der Ressourceneigenschaft Network_resources_used der Ressource) den Wert der $hostnames-Variablen.

Wenn Sie die Eigenschaft Network_resources_used mit mehreren Hostnamen konfigurieren, enthält die $hostnames alle Hostnamen, durch Komma voneinander getrennt.

Erstellen von Ressourcentypen mit mehreren unabhängigen Prozessbaumstrukturen

Agent Builder kann Ressourcentypen für Anwendungen erstellen, die über mehr als eine unabhängige Prozessbaumstruktur verfügen. Diese Prozessbaumstrukturen sind unabhängig in dem Sinn, dass sie PMF-Monitoren einzeln starten und anhalten. PMF startet jede dieser Prozessbaumstrukturen mit ihrer eigenen Markierung.


Hinweis –

Agent Builder ermöglicht das Erstellen von Ressourcentypen mit mehreren unabhängigen Prozessbaumstrukturen nur dann, wenn der angegebene generierte Quellcode C ist. Für das Erstellen dieser Ressourcentypen für ksh oder für GDS kann Agent Builder nicht eingesetzt werden. Der Code zum Erstellen dieser Ressourcentypen für ksh oder für GDS muss manuell geschrieben werden.


Im Fall einer Basisanwendung mit mehreren unabhängigen Prozessbaumstrukturen können Sie keinen einzelnen Befehl für das Starten der Anwendung angeben. Stattdessen muss eine Textdatei erstellt werden, in der jede Zeile den vollständigen Pfad zum Start-Befehl für eine der Prozessbaumstrukturen der Anwendung enthält. Diese Datei darf keine Leerzeilen enthalten. Sie können diese Textdatei im Textfeld “Start Command” im Bildschirm “Configure” angeben.

Wenn sichergestellt ist, dass diese Datei nicht über Ausführungsberechtigungen verfügt, kann Agent Builder die Datei, die dem Starten von mehreren Prozessbaumstrukturen dient, von einem einfachen ausführbaren Skript mit mehreren Befehlen unterscheiden. Wenn die Textdatei Ausführungsberechtigungen enthält, werden zwar die Ressourcen auf einem Cluster ohne Probleme oder Fehler hochgeladen. Alle Befehle werden jedoch unter einer einzigen PMF-Markierung gestartet, was die Möglichkeit ausschließt, die Prozessbaumstrukturen einzeln mit PMF zu überwachen und neu zu starten.

Wiederverwenden fertiger Arbeiten

Agent Builder bietet mehrere Möglichkeiten zur weiteren Nutzung bereits fertig gestellter Arbeiten.

Klonen eines vorhandenen Ressourcentyps

Führen Sie dieses Verfahren aus, um einen von Agent Builder erstellten vorhandenen Ressourcentyp zu klonen.

  1. Laden Sie einen vorhandenen Ressourcentyp in Agent Builder. Dafür gibt es zwei Möglichkeiten:

    1. Starten Sie Agent Builder von dem Arbeitsverzeichnis aus, das die rtconfig-Datei für einen mit Agent Builder erstellten vorhandenen Ressourcentyp enthält. Daraufhin lädt Agent Builder die Werte für diesen Ressourcentyp in die Bildschirme “Create” und “Configure”.

    2. Verwenden Sie im Menü “File” den Befehl Load Resource Type.

  2. Ändern Sie das Arbeitsverzeichnis im Bildschirm “Create”.

    Sie müssen die Schaltfläche Browse zum Auswählen eines Verzeichnisses verwenden — das Eingeben eines neuen Verzeichnisnamens reicht nicht aus. Nach Auswahl des Verzeichnisses aktiviert Agent Builder die Schaltfläche Create wieder.

  3. Nehmen Sie Änderungen vor.

    Mit diesem Verfahren können Sie den für den Ressourcentyp generierten Codetyp ändern. Wenn Sie zum Beispiel zunächst eine ksh-Version eines Ressourcentyps erstellen, dann aber feststellen, dass Sie eine C-Version benötigen, können Sie den vorhandenen ksh-Ressourcentyp laden, die Sprache für die Ausgabe in C ändern und Agent Builder eine C-Version des Ressourcentyps erstellen lassen.

  4. Erstellen Sie den geklonten Ressourcentyp.

    Wählen Sie Create aus, um den Ressourcentyp zu erstellen. Wählen Sie Next, um den Bildschirm “Configure” zu öffnen. Wählen Sie Configure aus, um den Ressourcentyp zu konfigurieren und dann Cancel, um den Vorgang zu beenden.

Bearbeiten des generierten Quellcodes

Um den Prozess für die Erstellung eines Ressourcentyps einfach zu halten, beschränkt Agent Builder die Anzahl der Eingaben. Dadurch werden natürlich auch die Einsatzmöglichkeiten für den generierten Ressourcentyp eingeschränkt. Um daher komplexere Funktionen wie zum Beispiel Validierungsprüfungen für zusätzliche Eigenschaften hinzuzufügen oder von Agent Builder nicht vorgegebene Parameter einzustellen, müssen Sie den generierten Quellcode oder die RTR-Datei ändern.

Die Quelldateien befinden sich im Verzeichnis Installationsverzeichnis/RT_Name/src. Agent Builder bettet an den Stellen im Quellcode, an denen Sie Code hinzufügen können, Kommentare ein. Diese Kommentare haben für C-Code folgende Form:


/* Vom Benutzer hinzugefügter Code -- BEGIN vvvvvvvvvvvvvvv */
/* Vom Benutzer hinzugefügter Code -- END   ^^^^^^^^^^^^^^^ */


Hinweis –

Diese Kommentare sind in Korn-Shell-Code identisch; bis auf das Pfundzeichen (#), mit dem die Kommentarzeile beginnt.


Zum Beispiel deklariert RT_Name.h alle Dienstprogrammroutinen, welche die verschiedenen Programme verwenden. Am Ende der Deklarationenliste befinden sich Kommentare, mit denen Sie weitere Routinen deklarieren können, die Sie einem der Codes hinzugefügt haben können.

Agent Builder generiert auch das Makefile im Verzeichnis Installationsverzeichnis/RT_Name/src mit entsprechenden Zielen. Verwenden Sie den make-Befehl, um den Quellcode neu zu kompilieren und den make pkg-Befehl zur Neugenerierung des Ressourcentyppakets.

Die RTR-Datei befindet sich im Verzeichnis Installationsverzeichnis/ RT_Name/etc. Sie können die RTR-Datei mit einem Standard-Textverarbeitungsprogramm bearbeiten (siehe Einstellen der Ressourcen- und Ressourcentypeigenschaften für weitere Informationen zur RTR-Datei und Anhang A für Informationen zu Eigenschaften).

Verwenden der Befehlszeilenversion von Agent Builder

Die Befehlszeilenversion von Agent Builder besteht aus demselben Zwei-Schritte-Prozess wie die grafische Benutzeroberfläche. Anstatt die Informationen auf der grafischen Benutzeroberfläche einzugeben, übergeben Sie Parameter an die Befehle scdscreate( 1HA) und scdsconfig(1HA).

Führen Sie folgende Schritte aus, um die Befehlszeilenversion von Agent Builder zu verwenden.

  1. Erstellen Sie mit dem Befehl scdscreate eine Sun Cluster-Ressourcentypvorlage, um eine Anwendung mit hoher Verfügbarkeit (HA) oder Skalierbarkeit auszustatten.

  2. Verwenden Sie scdsconfig, um die mit scdscreate erstellte Ressourcentypvorlage zu konfigurieren.

  3. Ändern Sie die Verzeichnisse in das pkg-Unterverzeichnis im Arbeitsverzeichnis.

  4. Verwenden Sie den Befehl pkgadd(1M), um die mit scdscreate erstellten Pakete zu installieren.

  5. Falls gewünscht, können Sie den generierten Quellcode bearbeiten.

  6. Führen Sie das Start-Skript aus.