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