Sun Cluster 数据服务开发者指南(适用于 Solaris OS)

分析函数变量

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 “$@”