Sun Cluster: Guía del desarrollador de los servicios de datos del sistema operativo Solaris

El método xfnts_update

RGM invoca el método Update para notificar a un recurso en ejecución que sus propiedades han cambiado. RGM invoca Update después de que una acción administrativa logre establecer satisfactoriamente las propiedades de un recurso o su grupo.


Ejemplo C–8 xfnts_update.c

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

/*
 * Copyright (c) 1998-2004 by Sun Microsystems, Inc.
 * All rights reserved.
 *
 * xfnts_update.c - Método de actualización para HA-XFS
 */

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

/*
 * Es posible que se hayan actualizado algunas propiedades del recurso.
 * Todas las propiedades actualizables y actualizadas están relacionadas
 * con el supervisor de fallos. Por tanto, debería bastar con reiniciar éste.
 */

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

   /* Procesar los argumentos que ha pasado RGM e inicializar syslog */
   if (scds_initialize(&scds_handle, argc, argv) != SCHA_ERR_NOERR)
{
      scds_syslog(LOG_ERR, “No se ha podido inicializar el manejo.”);
      return (1);
   }

   /*
    * Comprobar si el supervisor de fallos ya está en ejecución. Si es así,
    * detenerlo y reiniciarlo. El segundo parámetro de scds_pmf_restart_fm()
    * sólo identifica la instancia del supervisor de fallos que hay que
    * reiniciar.
    */

   scds_syslog(LOG_INFO, “Reinicio del supervisor de fallos.”);
   result = scds_pmf_restart_fm(scds_handle, 0);
   if (result != SCHA_ERR_NOERR) {
      scds_syslog(LOG_ERR,
          “No se ha podido reiniciar el supervisor de fallos.”);
      /* Liberar toda la memoria asignada por scds_initialize */
      scds_close(&scds_handle);
      return (1);
   }

   scds_syslog(LOG_INFO,
       “Terminado satisfactoriamente.”);

   /* Liberar toda la memoria asignada por scds_initialize */
   scds_close(&scds_handle);

   return (0);
}