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 PMF.
The first call in xfnts_monitor_start is to scds_initialize, which performs some necessary house-keeping functions (see The scds_initialize Call and the scds_initialize(3HA) man page for details.
The xfnts_monitor_start method calls the mon_start method, which is defined in xfnts.c 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 about the call in svc_mon_start to the scds_pmf_start function.
SCDS_PMF_TYPE_MON parameter 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 parameter identifies this as a single-instance resource.
The xfnts_probe parameter identifies the monitor daemon to start. The assumption is that the monitor daemon is in the same directory as the other callback programs.
The final parameter, 0, specifies the child monitoring level—in this case, monitor the monitor daemon only.
Before it exits, the xfnts_monitor_start method calls scds_close to reclaim resources allocated by scds_initialize. See The scds_initialize Call and the scds_close(3HA) man page for details.