Le RGM appelle la méthode Start sur un nœud du cluster lorsque le groupe de ressources contenant la ressource du service de données est connecté à ce nœud ou lorsque la ressource est activée. La méthode xfnts_start active le démon xfs sur ce nœud.
/*
* 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);
}
|