本節提供一些有關實施回呼方法的一般資訊。
通常,回呼方法需要存取資源屬性。 RMAPI 提供 shell 指令和 C 函式,可在回呼方法中使用以存取系統定義的資源屬性和延伸資源屬性。 請參閱 scha_resource_get(1HA) 和 scha_resource_get(3HA) 線上說明手冊。
DSDL 提供一組存取系統定義屬性的 C 函式 (每個屬性一個),以及一個存取延伸屬性的函式。 請參閱 scds_property_functions(3HA) 和 scds_get_ext_property(3HA) 線上說明手冊。
由於沒有可用於設定資源屬性的 API 函式 (除用於設定 Status 和 Status_msg 的函式外),因此您無法使用屬性機制來儲存資料服務的動態狀態資訊。 相反,您應該在全域檔案中儲存動態的狀態資訊。
叢集管理員可以使用 scrgadm 指令、透過可用圖形管理指令或透過可用圖形管理介面設定特定的資源屬性。 但是,請勿自任何回呼方法呼叫 scrgadm,這是因為在叢集重新配置期間,即 RGM 呼叫該方法時,scrgadm 會失敗。
RGM 一般不會在同一資源上以相同的引數連續多次呼叫一個方法。 但是,如果 Start 方法失敗,即使資源從未啟動,RGM 也會在該資源上呼叫 Stop 方法。 同樣,資源常駐程式可能會自動終止,而 RGM 仍然會在其上呼叫其 Stop 方法。 這些情形也同樣適用於 Monitor_start 和 Monitor_stop 方法。
鑒於這些原因,您必須在 Stop 和 Monitor_stop 方法中建置等冪性。 在同一資源上用相同參數重複呼叫 Stop 或 Monitor_stop 可獲得與單一呼叫相同的結果。
等冪性的一種含意為,即使資源或監視器已停止,並且不執行任何工作,Stop 和 Monitor_stop 也必須傳回 0 (成功)。
Init、Fini、Boot 以及 Update 方法也必須具有等冪性。 Start 方法不需要具有等冪性。