RGM は、ノードまたはゾーンでリソースが起動されたあとに、そのノードまたはゾーン上で Monitor_start メソッドを呼び出して障害モニターを起動します。xfnts_monitor_start メソッドは scds_pmf_start() を使用して PMF の制御下でモニターデーモンを起動します。
xfnts_monitor_start は、scds_initialize() を最初に呼び出し、これによって、必要な「ハウスキーピング」関数が実行されます。詳細は、「scds_initialize() 関数」と、scds_initialize(3HA)のマニュアルページを参照してください。
次に示すように、xfnts_monitor_start メソッドは、xfnts.c ファイルに定義されている mon_start メソッドを呼び出します。
scds_syslog_debug(DBG_LEVEL_HIGH, "Calling Monitor_start method for resource <%s>.", scds_get_resource_name(scds_handle)); /* scds_pmf_start を呼び出し、検証の名前を渡す。 */ 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); /* モニターを正常に起動。 */ }
svc_mon_start() から scds_pmf_start() 関数を呼び出すときは、次のことに注意してください。
SCDS_PMF_TYPE_MON 引数は、障害モニターとして起動するプログラムを指定します。このメソッドは、データサービスなどのほかのタイプのアプリケーションも起動できます。
SCDS_PMF_SINGLE_INSTANCE 引数は、これが単一インスタンスのリソースであることを指定します。
xfnts_probe 引数は、起動するモニターデーモンを指定します。このモニターデーモンは、ほかのコールバックプログラムと同じディレクトリに存在するものと想定されています。
最後の引数である 0 は、子プロセスの監視レベルを指定します。この場合、この値は PMF がモニターデーモンだけを監視することを示します。
xfnts_monitor_start メソッドは終了する前に scds_close() を呼び出して、scds_initialize() が割り当てたリソースを再利用します。詳細は、「scds_initialize() 関数」と、scds_close(3HA)のマニュアルページを参照してください。