监视方式
在为应用程序控制器配置进程监视器和定制监视器时,还可以指定以何种方式来使用应用程序监视器。
- 启动监视方式
在这种方式下,应用程序监视器将在集群服务启动时运行。 监视器将检查应用程序是否已在节点上运行。 如果监视器指示应用程序正在运行,那么集群服务在启动操作过程中不会运行应用程序控制器启动脚本。 如果您先前已使用 unmanage 选项停止集群服务,那么此功能很有用。 unmanage 选项将保持应用程序和其他资源在节点上处于活动状态。 当集群服务重新启动时,启动监视器可以指示应用程序是否仍在运行,并通过运行控制器启动脚本来避免创建第二个实例。
在应用程序控制器的稳定时间间隔所指定的特定时间量过去之后,将停止启动监视器。 如果监视器在稳定时间间隔内返回,那么返回码“0”指示应用程序已经在运行,因此不会运行控制器启动脚本。 如果监视器在稳定时间间隔内返回非零代码,或者根本未返回,那么应用程序未在运行,因此控制器启动脚本开始运行。
如果您正在使用父/子资源依赖性或“启动后”资源组依赖性,那么启动监视器很重要。 启动监视器还会在启动依赖资源组之前,验证父资源组或目标资源组中的应用程序是否在运行。
- 长时间运行方式
在这种方式下,启动应用程序之后,将使用应用程序监视器,并且应用程序监视器会检查应用程序是否仍在运行。 在稳定时间间隔到期之后,将开始监视。 对于定制监视器,将定期调用用户提供的监视器。 在 SMIT 中,时间间隔的值在 Monitor Interval 字段中指定。 对于进程监视器,监视依赖于可检测指定进程结束的 Reliable Scalable Cluster Technology (RSCT) 子系统。
您可以使用这种方式为任何应用程序控制器配置监视器,并且可以指定多个监视器来指示应用程序的运行状况。
例如,可以将进程应用程序监视器配置为立即指示关键数据库进程是否已结束。 还可以配置会定期向数据库发送事务的定制监视器。 定制监视器将验证数据库是否在积极响应请求,而进程监视器则立即检测关键数据库进程是否已结束。注: 在此方式下,应用程序监视器不会在应用程序启动时运行,也不会检查正在运行的应用程序的状态。 如果在取消管理节点后启动集群服务操作,那么启动脚本将处理应用程序的运行状态。
- 两者
在这种方式下,同一应用程序监视器同时用于启动监视方式和长时间运行方式。 如果您编写和测试要在这种方式下使用的定制监视器,那么同一监视器必须在不同情况下启动时能够正常运行。 在启动期间调用监视器时,将仅在稳定时间间隔所指定的时间量内运行监视器。 如果监视器在稳定时间间隔所指定的时间量内未返回,那么将停止监视器并运行应用程序启动脚本。
您在 SMIT 中对 Monitor Interval 字段指定的时间间隔,将确定长时间运行的定制监视器在应用程序启动并稳定之后的运行频率。
如果将同一应用程序监视器同时用于启动监视和长时间运行的监视,那么必须验证监视器是否能够可靠地确定应用程序状态并在相关联的时间段内返回相应的指示。