RGM ruft die Monitor_start-Methode auf einem Knoten auf, um den Fehler-Monitor zu starten, nachdem eine Ressource auf diesem Knoten gestartet wurde. Die xfnts_monitor_start-Methode verwendet scds_pmf_start(), um den Monitor-Dämon unter PMF zu starten.
Der erste Aufruf in xfnts_monitor_start erfolgt an scds_initialize(). Diese Funktion führt einige wichtige Systemverwaltungs-Funktionen aus (weitere Einzelheiten finden Sie unter scds_initialize()-Funktion und in der Online-Dokumentation unter scds_initialize(3HA)).
Die xfnts_monitor_start-Methode ruft die in xfnts.c definierte mon_start-Methode folgendermaßen auf:
scds_syslog_debug(DBG_LEVEL_HIGH, "Monitor_start-Methode für Ressource <%s> wird aufgerufen.", scds_get_resource_name(scds_handle)); /* scds_pmf_start aufrufen und den Testsignalnamen übergeben. */ 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, "Fehler-Monitor konnte nicht gestartet werden."); return (1); } scds_syslog(LOG_INFO, "Fehler-Monitor gestartet."); return (SCHA_ERR_NOERR); /* Monitor erfolgreich gestartet */ }
Bezüglich des Aufrufs in svc_mon_start() an die scds_pmf_start()-Funktion ist Folgendes zu beachten.
Der Parameter SCDS_PMF_TYPE_MON identifiziert das zu startende Programm als Fehler-Monitor — mit dieser Methode kann auch ein Datendienst oder ein anderer Anwendungstyp gestartet werden.
Der Parameter SCDS_PMF_SINGLE_INSTANCE identifiziert eine Ressource mit einer einzigen Instanz.
Der xfnts_probe-Parameter identifiziert den zu startenden Monitor-Dämon. Es wird davon ausgegangen, dass der Monitor-Dämon sich in demselben Verzeichnis wie die anderen Rückmeldeprogramme befindet.
Der letzte Parameter, 0, gibt die untergeordnete Überwachungsebene an — in diesem Fall wird nur der Monitor-Dämon überwacht.
Vor der Beendigung ruft die xfnts_monitor_start-Methode scds_close() auf, um die von scds_initialize() zugewiesenen Ressourcen zurückzufordern. Weitere Einzelheiten finden Sie unter scds_initialize()-Funktion und in der Online-Dokumentation unter scds_close(3HA).