RGM 调用 Update 方法通知运行资源其特性已被更改。 在设置资源及其组的特性过程中成功地执行了管理操作后,RGM 将调用 Update。 在资源联机的节点上调用此方法。
Update 方法并不更新特性,此操作由 RGM 完成, 而该方法将通知运行进程已进行了更新。 数据服务样例中唯一受特性更新操作影响的进程是故障监视器,因此 Update 方法将停止和重启此进程。
Update 方法必须检验故障监视器是否正在运行,如果正在运行,将使用 pmfadm 终止该监视器。 该方法将获取实现故障监视器的探测程序的位置,然后再次使用 pmfadm 重启该程序。
Update 方法将使用 pmfadm -q 检验监视器是否正在运行,如果正在运行,它将使用 pmfadm -s TERM 终止该监视器。 成功终止监视器后,将向管理用户发送表明相应情况的消息。 如果无法停止监视器,Update 将在失败状态下退出并向管理用户发送一条错误消息。
if pmfadm -q $RESOURCE_NAME.monitor; then # Kill the monitor that is running already pmfadm -s $PMF_TAG TERM if [ $? -ne 0 ]; then logger -p ${SYSLOG_FACILITY}.err \ -t [$SYSLOG_TAG] \ "${ARGV0} Could not stop the monitor" exit 1 else # could successfully stop DNS. Log a message. logger -p ${SYSLOG_FACILITY}.err \ -t [$RESOURCETYPE_NAME,$RESOURCEGROUP_NAME,$RESOURCE_NAME] \ "Monitor for HA-DNS successfully stopped" fi |
要重新启动监视器,Update 方法必须定位实现探测程序的脚本。 该探测程序驻留在数据服务的基目录上,由 Rt_basedir 特性指向该目录。 Update 将检索 Rt_basedir 的值并将其存储在 RT_BASEDIR 变量中,如下所示。
RT_BASEDIR=`scha_resource_get -O RT_BASEDIR -R $RESOURCE_NAME -G \ $RESOURCEGROUP_NAME` |
然后,Update 将通过 pmfadm 使用 RT_BASEDIR 的值来重启 dns_probe 程序。 如果成功,Update 将在成功状态下退出并向管理用户发送一条表明相应情况的消息。 如果 pmfadm 无法启动该探测程序,Update 将在失败状态下退出并记录一条错误消息。
Update 方法的失败将导致资源处于“更新失败”状态。 此状态对资源的 RGM 管理并无影响,但是它表明通过 syslog 工具更新管理工具的操作失败。