Die restart_service()-Funktion wird von decide_restart_or_failover() aufgerufen, um den Neustart des Datendienstes auf demselben Knoten zu versuchen. Diese Funktion führt folgende Aufgaben aus:
Sie stellt fest, ob der Datendienst noch unter PMF registriert ist. Wenn der Dienst noch registriert ist, geht die Funktion folgendermaßen vor:
Sie ruft den Stop-Methodennamen und den Stop_timeout-Wert für den Datendienst ab.
Sie verwendet hatimerun, um die Stop-Methode für den Datendienst zu starten, indem sie den Stop_timeout-Wert übergibt.
Wenn der Datendienst erfolgreich gestoppt wurde, ruft sie den Start-Methodennamen und den Start_timeout-Wert für den Datendienst ab.
Sie verwendet hatimerun, um die Start-Methode für den Datendienst zu starten, indem sie den Start_timeout-Wert übergibt.
Wenn der Datendienst nicht mehr unter PMF registriert ist, bedeutet dies, dass er die maximale Anzahl zulässiger Wiederholversuche unter PMF überschritten hat. Daher wird die scha_control()-Funktion mit der GIVEOVER-Option aufgerufen, um für den Datendienst ein Failover auf einen anderen Knoten auszuführen.
function restart_service { # Um den Datendienst neu zu starten, wird zunächst überprüft, ob # der Datendienst selbst noch unter PMF registriert ist. pmfadm -q $PMF_TAG if [[ $? -eq 0 ]]; then # Da das TAG für den Datendienst noch unter PMF registriert ist, # den Datendienst zunächst stoppen und dann wieder neu starten. # Stop-Methodenname und STOP_TIMEOUT-Wert für diese # Ressource abrufen. STOP_TIMEOUT=`scha_resource_get -O STOP_TIMEOUT \ -R $RESOURCE_NAME -G $RESOURCEGROUP_NAMÈ STOP_METHOD=`scha_resource_get -O STOP \ -R $RESOURCE_NAME -G $RESOURCEGROUP_NAMÈ hatimerun -t $STOP_TIMEOUT $RT_BASEDIR/$STOP_METHOD \ -R $RESOURCE_NAME -G $RESOURCEGROUP_NAME \ -T $RESOURCETYPE_NAME if [[ $? -ne 0 ]]; then logger-p ${SYSLOG_FACILITY}.err -t [$SYSLOG_TAG] \ “${ARGV0} Stop-Methode fehlgeschlagen.” return 1 fi # START-Methodenname und START_TIMEOUT-Wert für diese # Ressource abrufen. START_TIMEOUT=`scha_resource_get -O START_TIMEOUT \ -R $RESOURCE_NAME -G $RESOURCEGROUP_NAMÈ START_METHOD=`scha_resource_get -O START \ -R $RESOURCE_NAME -G $RESOURCEGROUP_NAMÈ hatimerun -t $START_TIMEOUT $RT_BASEDIR/$START_METHOD \ -R $RESOURCE_NAME -G $RESOURCEGROUP_NAME \ -T $RESOURCETYPE_NAME if [[ $? -ne 0 ]]; then logger-p ${SYSLOG_FACILITY}.err -t [$SYSLOG_TAG] \ “${ARGV0} Start-Methode fehlgeschlagen.” return 1 fi else # Das Fehlen des TAG für den Datendienst weist darauf # hin, dass der Datendienst bereits die maximale Anzahl # der unter PMF zulässigen Wiederholversuche überschritten hat. # Daher nicht versuchen, den Datendienst noch einmal neu # zu starten, sondern ein Failover auf einen anderen Knoten im # Cluster versuchen. scha_control -O GIVEOVER -G $RESOURCEGROUP_NAME \ -R $RESOURCE_NAME fi return 0 } |