The RGM calls the Monitor_start method on a node to start the fault monitor after a resource is started on the node. The xfnts_monitor_start method uses scds_pmf_start() to start the monitor daemon under the PMF.
The first call in xfnts_monitor_start is to scds_initialize(), which performs some necessary housekeeping functions. scds_initialize() Function and the scds_initialize(3HA) man page contain more information.
The xfnts_monitor_start method calls the mon_start method, which is defined in the xfnts.c file, as follows:
scds_syslog_debug(DBG_LEVEL_HIGH, "Calling Monitor_start method for resource <%s>.", scds_get_resource_name(scds_handle)); /* Call scds_pmf_start and pass the name of the probe. */ 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); /* Successfully started Monitor */ }
Note the following points about the call in svc_mon_start() to the scds_pmf_start() function:
The SCDS_PMF_TYPE_MON argument identifies the program to start as a fault monitor. This method can also start a data service or some other type of application.
The SCDS_PMF_SINGLE_INSTANCE argument identifies this as a single-instance resource.
The xfnts_probe argument identifies the monitor daemon to start. The monitor daemon is assumed to be located in the same directory as the other callback programs.
The final argument, 0, specifies the child monitoring level. In this case, this value specifies that the PMF monitor the monitor daemon only.
Before it exits, the xfnts_monitor_start method calls scds_close() to reclaim resources that were allocated by scds_initialize(). scds_initialize() Function and the scds_close(3HA) man page contain more information.