由於 xfnts_monitor_start 方法使用 scds_pmf_start() 來啟動 PMF 下的監視器常駐程式,因此 xfnts_monitor_stop 使用 scds_pmf_stop() 來停止此監視器常駐程式。
xfnts_monitor_stop 的第一次呼叫是呼叫 scds_initialize(),它執行某些必需的事務性工作功能 (scds_initialize() 函式與 scds_initialize(3HA) 線上援助頁包含更多詳細資訊)。
xfnts_monitor_stop() 方法呼叫 mon_stop 方法 (在 xfnts.c 中定義),如下所示。
scds_syslog_debug(DBG_LEVEL_HIGH, "Calling scds_pmf_stop method"); err = scds_pmf_stop(scds_handle, SCDS_PMF_TYPE_MON, SCDS_PMF_SINGLE_INSTANCE, SIGKILL, scds_get_rs_monitor_stop_timeout(scds_handle)); if (err != SCHA_ERR_NOERR) { scds_syslog(LOG_ERR, "Failed to stop fault monitor."); return (1); } scds_syslog(LOG_INFO, "Stopped the fault monitor."); return (SCHA_ERR_NOERR); /* Successfully stopped monitor */ }
請注意下列關於 svc_mon_stop() 呼叫 scds_pmf_stop() 函式的內容。
SCDS_PMF_TYPE_MON 參數將要停止的程式識別為故障監視器 — 此方法也可以停止資料服務或某些其他類型的應用程式。
SCDS_PMF_SINGLE_INSTANCE 參數將其識別為單一實例資源。
SIGKILL 參數識別用來停止資源實例的訊號。 如果此訊號無法停止實例,scds_pmf_stop() 將傳回逾時錯誤。 請參閱 scds_pmf_stop(3HA)) 線上援助頁以取得詳細資訊。
逾時值為資源之 Monitor_stop_timeout 屬性的值。
在結束之前,xfnts_monitor_stop 方法將呼叫scds_close() 以回收 scds_initialize() 分配的資源。 請參閱scds_initialize() 函式與 scds_close(3HA) 線上說明手冊,以取得詳細資訊。