DSDL は、事前に定義されたモデルを提供することによって、障害モニターを実装する際の煩雑さをほとんど取り除きます。リソースがノードまたはゾーン上で起動すると、Monitor_start メソッドは PMF の制御下で障害モニターを起動します。リソースがノードまたはゾーン上で動作している間、障害モニターは無限ループを実行します。
次に、DSDL 障害モニターのロジックの概要を示します。
scds_fm_sleep() 関数は Thorough_probe_interval プロパティーを使用して、検証を行う期間を決定します。この期間中に PMF がアプリケーションプロセスの失敗を検出した場合、リソースは再起動されます。
検証機能自身は、障害の重要度を示す値を戻し、この値の範囲は、0 (障害なし) から 100 (致命的な障害) までです。
検証機能が戻した値は、scds_action() 関数に送信されます。scds_action() 関数は、Retry_interval プロパティーの期間中に、障害の履歴を累積します。
scds_action() 関数は、次に示すように、障害が発生した場合の処置を決定します。
累積した障害が 100 より少ない場合は、何もしません。
累積した障害が 100 に到達した場合 (完全な障害)、データサービスを再起動します。Retry_interval を超えた場合、障害の履歴をリセットします。
Retry_interval で指定された期間中に、再起動の回数が Retry_count プロパティーを上回った場合、データサービスをフェイルオーバーします。