Le RGM appelle la méthode Monitor_start sur un nœud pour démarrer le détecteur de pannes une fois une ressource démarrée sur le nœud. La méthode xfnts_monitor_start utilise scds_pmf_start() pour démarrer le démon du détecteur sous le gestionnaire de processus.
le premier appel de xfnts_monitor_start est adressé à scds_initialize() qui exécute des fonctions de gestion interne nécessaires (pour de plus amples informations, reportez-vous à la rubrique Fonction scds_initialize() et à la page de manuel scds_initialize(3HA)).
La méthode xfnts_monitor_start appelle la méthode mon_start, définie dans xfnts.c de la manière suivante :
scds_syslog_debug(DBG_LEVEL_HIGH, "Calling Monitor_start method for resource <%s>.", scds_get_resource_name(scds_handle)); /* Appel de scds_pmf_start et transmission du nom de la sonde. */ err = scds_pmf_start(scds_handle, SCDS_PMF_TYPE_MON, SCDS_PMF_SINGLE_INSTANCE, "xfnts_probe", 0); if (err != SCHA_ERR_NOERR) { scds_syslog(LOG_ERR, "Failed to start fault monitor."); return (1); } scds_syslog(LOG_INFO, "Started the fault monitor."); return (SCHA_ERR_NOERR); /* Détecteur démarré avec succès */ }
Remarquez les points suivants sur l'appel de svc_mon_start() adressé à la fonction scds_pmf_start() :
Le paramètre SCDS_PMF_TYPE_MON identifie le programme à démarrer comme un détecteur de pannes (cette méthode peut également démarrer un service de données ou un autre type d'application).
Le paramètre SCDS_PMF_SINGLE_INSTANCE l'identifie comme une ressource à instance unique.
Le paramètre xfnts_probe identifie le démon du détecteur à démarrer. Le système suppose que le démon du détecteur se trouve dans le même répertoire que les autres programmes de rappel.
Le paramètre final, 0, spécifie le niveau de surveillance enfant. Dans ce cas, seul le démon du détecteur est surveillé.
avant sa fermeture, la méthode xfnts_monitor_start appelle scds_close() pour récupérer les ressources allouées par scds_initialize(). Reportez-vous à la rubrique Fonction scds_initialize() et à la page de manuel scds_close(3HA) pour de plus amples informations.