RGM führt die Update-Methode aus, um eine laufende Ressource darüber zu benachrichtigen, dass ihre Eigenschaften geändert wurden. RGM führt Update aus, nachdem ein Cluster-Administrator die Eigenschaften einer Ressource oder ihrer Gruppe erfolgreich ausführt. Diese Methode wird an Knoten ausgeführt, an denen die Ressource online ist.
Die Update-Methode aktualisiert keine Eigenschaften. RGM aktualisiert Eigenschaften. Die Update-Methode benachrichtigt laufende Prozesse darüber, dass eine Aktualisierung stattgefunden hat. Der einzige Prozess des Beispieldatendienstes, der von einer Eigenschaftenaktualisierung beeinträchtigt wird, ist der Fehler-Monitor. Folglich ist der Fehler-Monitor-Prozess der Prozess, der von der Update-Methode gestoppt und neu gestartet wird.
Die Update-Methode muss prüfen, ob der Fehler-Monitor ausgeführt wird und ihn dann mit dem Befehl pmfadm beenden. Die Methode ruft den Speicherort des Testsignalprogramms ab, mit dem der Fehler-Monitor implementiert wird und startet es mit dem Befehl pmfadm neu.
Die Update-Methode verwendet pmfadm -q, um zu prüfen, ob der Monitor ausgeführt wird. Ist dies der Fall, wird er mit pmfadm -s TERM beendet. Wenn der Monitor erfolgreich beendet wird, wird zu diesem Zweck eine Meldung an den Cluster-Administrator gesendet. Wenn der Monitor nicht gestoppt werden kann, wird Update mit einem Fehlerstatus beendet und eine Fehlermeldung an den Cluster-Administrator gesendet.
if pmfadm -q $RESOURCE_NAME.monitor; then # Kill the monitor that is running already pmfadm -s $PMF_TAG TERM if [ $? -ne 0 ]; then logger -p ${SYSLOG_FACILITY}.err \ -t [$SYSLOG_TAG] \ "${ARGV0} Could not stop the monitor" exit 1 else # could successfully stop DNS. Log a message. logger -p ${SYSLOG_FACILITY}.err \ -t [$RESOURCETYPE_NAME,$RESOURCEGROUP_NAME,$RESOURCE_NAME] \ "Monitor for HA-DNS successfully stopped" fi
Um den Monitor neu zu starten, muss die Update-Methode das Skript finden, mit dem das Testsignalprogramm implementiert wird. Das Testprogramm befindet sich im Basisverzeichnis des Datendienstes, auf das mit der Eigenschaft RT_basedir verwiesen wird. Update ruft den Wert von RT_basedir ab und speichert ihn wie folgt in der RT_BASEDIR-Variablen.
RT_BASEDIR=`scha_resource_get -O RT_basedir -R $RESOURCE_NAME -G \ $RESOURCEGROUP_NAME`
Update verwendet den Wert von RT_BASEDIR mit pmfadm, um das dns_probe-Programm neu zu starten. Bei Erfolg wird Update mit Erfolg beendet und zu diesem Zweck eine Meldung an den Cluster-Administrator gesendet. Wenn pmfadm das Testsignalprogramm nicht starten kann, wird Update mit einem Fehlerstatus beendet und eine Fehlermeldung protokolliert.
Ein Fehlschlagen der Update-Methode versetzt die Ressource in einen Zustand “Aktualisierung fehlgeschlagen”. Dieser Zustand hat keinerlei Auswirkung auf die RGM-Verwaltung der Ressource, weist jedoch die Verwaltungstools auf den Fehler der Aktualisierungsaktion über die Funktion syslog() hin.