Le gestionnaire RGM appelle la méthode de Démarrage sur un noeud du cluster lorsque le groupe de ressources contenant la ressource du service de données est connecté à ce noeud ou lorsque la ressource est activée. La méthode dedémarrage_xfnts active le démon xfs sur ce noeud.
/* * Copyright (c) 1998-2003 par Sun Microsystems, Inc. * Tous droits réservés. * * xfnts_svc_start.c - Méthode de démarrage de HA-XFS */ #pragma ident “@(#)xfnts_svc_start.c 1.13 01/01/18 SMI” #include <rgm/libdsdev.h> #include “xfnts.h” /* * Méthode de démarrage de HA-XFS. Effectue quelques contrôles sanitaires sur * les paramètres de ressource, puis démarre HA-XFS via la fonction PMF avec un * script d'action. */ int main(int argc, char *argv[]) { scds_handle_t scds_handle; int rc; /* * Traitez tous les arguments qui nous ont été passés à partir du gestionnaire * RG et effectuez des actions d'initialisation pour syslog */ if (scds_initialize(&scds_handle, argc, argv) != SCHA_ERR_NOERR) { scds_syslog(LOG_ERR, “Failed to initialize the handle.”); return (1); } /* Validez l'initialisation et retournez en arrière en cas d'erreur */ rc = svc_validate(scds_handle); if (rc != 0) { scds_syslog(LOG_ERR, “Failed to validate configuration.”); return (rc); } /* Démarrez le service de données et retournez une erreur en cas d'erreur */ rc = svc_start(scds_handle); if (rc != 0) { goto finished; } /* Attendez que le service démarre complètement */ scds_syslog_debug(DBG_LEVEL_HIGH, “Calling svc_wait to verify that service has started.”); rc = svc_wait(scds_handle); scds_syslog_debug(DBG_LEVEL_HIGH, “Returned from svc_wait”); if (rc == 0) { scds_syslog(LOG_INFO, “Successfully started the service.”); } else { scds_syslog(LOG_ERR, “Failed to start the service.”); } finished: /* Libérez les ressources Environnement qui ont été allouées */ scds_close(&scds_handle); return (rc); } |