通过提供一个预设模型,DSDL 大大降低了实现故障监视器的复杂性。 当在节点上启动资源时,Monitor_start 方法将在 PMF 的控制下启动故障监视器。 只要该资源在节点上运行,故障监视器也将循环运行。 DSDL 故障监视器的高级逻辑如下:
scds_fm_sleep 函数使用 Thorough_probe_interval 特性确定探测操作之间的时间值。 在此间隔中 PMF 确定的任何应用程序进程失败都将导致资源的重启。
探测程序本身将返回一个值,表明失败的严重级别,值的范围是从 0(无失败)到 100(完全失败)。
探测程序返回的值将发送到 scds_action 函数,该函数将在 Retry_interval 特性指定的间隔内维护累积的失败历史记录。
scds_action 函数将确定失败时应该执行什么操作,如下所示。
如果累积失败值小于 100,不执行任何操作。
如果累积失败值达到 100(完全失败),将重启该数据服务。 如果超出 Retry_interval 的值,将重置该历史记录。
如果重启的次数超出了 Retry_count 特性的值,则将在 Retry_interval 指定的时间内对该数据服务进行故障切换。