Sun Cluster Entwicklerhandbuch Datendienste für Solaris OS

Monitor_check-Methode

Diese Methode überprüft das Vorhandensein des Verzeichnisses, auf das die Confdir-Eigenschaft zeigt. RGM ruft jedesmal Monitor_check auf, wenn die PROBE-Methode ein Failover des Datendienstes auf einen neuen Knoten ausführt, und prüft auch Knoten, die potenzielle Master sind.


Beispiel B–8 dns_monitor_check-Methode

#!/bin/ksh
# Monitor-Prüfmethode für DNS.
#
# RGM ruft diese Methode immer dann auf, wenn der Fehler-Monitor für den
# Datendienst ein Failover auf einen neuen Knoten ausführt. Monitor_check ruft
# die Validate-Methode auf, um zu prüfen, ob das Konfigurationsverzeichnis
# und die -dateien auf dem neuen Knoten verfügbar sind.

#pragma ident   “@(#)dns_monitor_check 1.1   00/05/24 SMI”

###############################################################################
# Programmargumente analysieren.
function parse_args # [args ...]
{
   typeset opt

   while getopts `R:G:T:' opt
   do
      case “$opt” in

      R)
      # Name der DNS-Ressource.
      RESOURCE_NAME=$OPTARG
      ;;

      G)
      # Name der Ressourcengruppe, in der die Ressource
      # konfiguriert ist.
      RESOURCEGROUP_NAME=$OPTARG
      ;;

      T)
      # Name des Ressourcentyps.
      RESOURCETYPE_NAME=$OPTARG
      ;;

      *)
      logger -p ${SYSLOG_FACILITY}.err \
      -t [$RESOURCETYPE_NAME,$RESOURCEGROUP_NAME,$RESOURCE_NAME] \
      “FEHLER: Option $OPTARG unbekannt”
      exit 1
      ;;
      esac
   done

}

###############################################################################
# MAIN
##############################################################################

export PATH=/bin:/usr/bin:/usr/cluster/bin:/usr/sbin:/usr/proc/bin:$PATH

# syslog-Funktion abrufen, mit der Meldungen protokolliert werden.
SYSLOG_FACILITY=`scha_cluster_get -O SYSLOG_FACILITY`

# Argumente analysieren, die an diese Methode übergeben wurden.
parse_args “$@”

PMF_TAG=$RESOURCE_NAME.named
SYSLOG_TAG=$RESOURCETYPE_NAME,$RESOURCEGROUP_NAME,$RESOURCE_NAME

# Vollständigen Pfad für die Validate-Methode aus der
# RT_BASEDIR-Eigenschaft des Ressourcentyps abrufen.
RT_BASEDIR=`scha_resource_get -O RT_BASEDIR -R $RESOURCE_NAME \
   -G $RESOURCEGROUP_NAMÈ

# Namen der Validate-Methode für diese Ressource abrufen.
VALIDATE_METHOD=`scha_resource_get -O VALIDATE    -R $RESOURCE_NAME \
-G $RESOURCEGROUP_NAMÈ

# Wert für die Confdir-Eigenschaft zum Starten des Datendienstes abrufen.
# Den eingegebenen Ressourcennamen und die Ressourcengruppe zum Abrufen des
# Confdir-Wertes verwenden, der bei Hinzufügen der Ressource eingestellt wurde.
config_info=`scha_resource_get -O Extension -R $RESOURCE_NAME \
-G $RESOURCEGROUP_NAME Confdir`

# scha_resource_get gibt sowohl den Typ als auch den Wert von
# Erweiterungseigenschaften zurück. awk verwenden, um nur den Wert der
# Erweiterungseigenschaft abzurufen.
CONFIG_DIR=`echo $config_info | awk `{print $2}'`

# Validate-Methode aufrufen, damit für den Datendienst ein erfolgreiches Failover
# auf den neuen Knoten ausgeführt werden kann.
$RT_BASEDIR/$VALIDATE_METHOD -R $RESOURCE_NAME -G $RESOURCEGROUP_NAME \
   -T $RESOURCETYPE_NAME -x Confdir=$CONFIG_DIR

# Meldung protokollieren, die angibt, dass die Monitor-Prüfung erfolgreich war.
if [ $? -eq 0 ]; then
   logger -p ${SYSLOG_FACILITY}.info -t [$SYSLOG_TAG] \
      “${ARGV0} Monitor-Prüfung für DNS erfolgreich.”
   exit 0
else
   logger -p ${SYSLOG_FACILITY}.err -t [$SYSLOG_TAG] \
      “${ARGV0} Monitor-Prüfung für DNS nicht erfolgreich.”
   exit 1
fi