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 工具更新管理工具的操作失败。