Guide des développeurs pour les services de données Sun Cluster 3.1 10/03

Méthode de mise_à_jour_xfnts

Le gestionnaire RGM appelle la méthode de Mise_à_jour pour notifier à une ressource en cours d'exécution que ses propriétés ont été modifiées. Il appelle Mise_à_jour après l'exécution réussie d'une action administrative de paramétrage des propriétés d'une ressource ou de son groupe.


Exemple C–8 xfnts_update.c

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

/*
 * Copyright (c) 1998-2003 par Sun Microsystems, Inc.
 * Tous droits réservés.
 *
 * xfnts_update.c - Update method for HA-XFS
 */

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

/*
 * Certaines des propriétés de ressource peuvent avoir été mises à jour. Toutes
 * ces propriétés qu'il est possible de mettre à jour sont liées au système de 
 * détection des pannes. Par conséquent, il suffit normalement de redémarrer 
 * le détecteur.
 */

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

   /* Traitez les arguments passés par le gestionnaire RGM et initialisez syslog */
   if (scds_initialize(&scds_handle, argc, argv) != SCHA_ERR_NOERR)
{
      scds_syslog(LOG_ERR, “Failed to initialize the handle.”);
      return (1);
   }

   /*
    * Vérifiez si le système de détection des pannes fonctionne déjà et arrêtez-le 
    * le cas échéant, puis redémarrez-le. Le second paramètre de scds_pmf_restart_fm() 
    * identifie uniquement l'instance du système de détection des pannes qui doit être
    * redémarré.
    */

   scds_syslog(LOG_INFO, “Restarting the fault monitor.”);
   result = scds_pmf_restart_fm(scds_handle, 0);
   if (result != SCHA_ERR_NOERR) {
      scds_syslog(LOG_ERR,
          “Failed to restart fault monitor.”);
      /* Libérez toute la mémoire allouée par scds_initialize */
      scds_close(&scds_handle);
      return (1);
   }

   scds_syslog(LOG_INFO,
       “Completed successfully.”);

   /* Libérez toute la mémoire allouée par scds_initialize */
   scds_close(&scds_handle);

   return (0);
}