Sun Cluster Entwicklerhandbuch Datendienste für Solaris OS

Neustarten des Datendienstes

Die restart_service()-Funktion wird von decide_restart_or_failover() aufgerufen, um einen Neustart des Datendienstes auf dem gleichen Knoten zu versuchen. Diese Funktion führt folgende Aufgaben aus.


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 fur 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
}