Sun Cluster Entwicklerhandbuch Datendienste für Solaris OS

Die xfnts_update-Methode

RGM ruft die Update-Methode auf, um eine laufende Ressource von der Änderung ihrer Eigenschaften zu benachrichtigen. Das Programm ruft Update auf, nachdem eine Verwaltungsaktion erfolgreich die Eigenschaften einer Ressource bzw. deren Gruppe eingestellt hat.


Beispiel C–8 xfnts_update.c

#pragma ident “@(#)xfnts_update.c  1.10     01/01/18 SMI”

/*
 * Copyright (c) 1998-2004 Sun Microsystems, Inc.
 * Alle Rechte vorbehalten.
 *
 * xfnts_update.c - Update-Methode für HA-XFS
 */

#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <rgm/libdsdev.h>

/*
 * Einige Ressourceneigenschaften sind möglicherweise aktualisiert worden. All diese
 * aktualisierbaren Eigenschaften beziehen sich auf den Fehler-Monitor. Daher sollte
 * es genügen, einfach den Monitor neu zu starten.
 */

int
main(int argc, char *argv[])
{
   scds_handle_t   scds_handle;
   scha_err_t   result;

   /* Von RGM übergebene Argumente verarbeiten und syslog initialisieren */
   if (scds_initialize(&scds_handle, argc, argv) != SCHA_ERR_NOERR)
{
      scds_syslog(LOG_ERR, “Initialisierung des Handles fehlgeschlagen.”);
      return (1);
   }

   /*
    * Prüfen, ob der Fehler-Monitor bereits läuft. Falls ja, stoppen und neu starten.
    * Der zweite Parameter von scds_pmf_restart_fm() identifiziert
    * eindeutig die Instanz des Fehler-Monitors, die neu gestartet werden
    * muss.
    */

   scds_syslog(LOG_INFO, “Fehler-Monitor wird neu gestartet.”);
   result = scds_pmf_restart_fm(scds_handle, 0);
   if (result != SCHA_ERR_NOERR) {
      scds_syslog(LOG_ERR,
          “Neustart des Fehler-Monitors fehlgeschlagen.”);
      /* Gesamten von scds_initialize zugewiesenen Speicherplatz freigeben */
      scds_close(&scds_handle);
      return (1);
   }

   scds_syslog(LOG_INFO,
       “Erfolgreich beendet.”);

   /* Gesamten von scds_initialize zugewiesenen Speicherplatz freigeben */
   scds_close(&scds_handle);

   return (0);
}