RGM 将调用所有回调方法(Validate 除外),如下所示。
method_name -R resource_name -T resource_type_name -G resource_group_name |
方法名是实现回调方法的程序的路径名。数据服务指定 RTR 文件中各个方法的路径名。这些路径名相对于 RT_basedir 特性所指定的目录(也是在 RTR 文件中)。例如,在数据服务样例的 RTR 文件中,基目录和方法名按照以下方式指定。
RT_BASEDIR=/opt/SUNWsample/bin; Start = dns_svc_start; Stop = dns_svc_stop; ... |
所有回调方法参数都作为标记值传送,-R 用来表示资源实例的名称,-T 用来表示资源的类型,-G 用来表示配置该资源的组。有关回调方法的详细信息,请参见 rt_callbacks (1HA) 手册页。
Validate 方法通过附加参数(所调用资源和资源组的特性值)调用。有关详细信息,请参见处理特性更新。
每个回调方法都需要一个函数来分析其传送的参数。因为所有回调方法都传送相同的参数,所以数据服务提供了一个用于应用程序中所有回调方法的分析函数。
下面显示了用于应用程序样例中的回调方法的 parse_args() 函数。
#########################################################################
# Parse program arguments.
#
function parse_args # [args ...]
{
typeset opt
while getopts 'R:G:T:' opt
do
case "$opt" in
R)
# Name of the DNS resource.
RESOURCE_NAME=$OPTARG
;;
G)
# Name of the resource group in which the resource is
# configured.
RESOURCEGROUP_NAME=$OPTARG
;;
T)
# Name of the resource type.
RESOURCETYPE_NAME=$OPTARG
;;
*)
logger -p ${SYSLOG_FACILITY}.err \
-t [$RESOURCETYPE_NAME,$RESOURCEGROUP_NAME,$RESOURCE_NAME] \
"ERROR: Option $OPTARG unknown"
exit 1
;;
esac
done
}
|
虽然应用程序样例中的 PROBE 方法是用户定义的(不是 Sun Cluster 回调方法),但是也使用与调用回调方法相同的参数来调用该方法。因此,此方法包含的分析函数与其他回调方法所使用的分析函数相同。
分析函数在 MAIN 中调用,如下所示:
parse_args “$@” |