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 方法是使用其他引數 (呼叫 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 “$@” |