本小節提供有關實作回呼方法的一般資訊。
通常,回呼方法需要對資源特性的存取權。RMAPI 提供 shell 指令和 C 函數,可在回呼方法中使用以存取系統定義的資源特性和延伸資源特性。請參閱 scha_resource_get(1HA) 和 scha_resource_get(3HA) 線上手冊。
DSDL 提供存取系統定義的特性的 C 函數集 (每種特性均具有一個函數),以及存取延伸特性的一個函數。請參閱 scds_property_functions(3HA) 和 scds_get_ext_property(3HA) 線上手冊。
您無法使用特性機制儲存資料服務的動態狀態資訊,因為除 Status 和 Status_msg 之外,沒有用於設定資源特性的 API 函數。相反,您應該在全域檔案中儲存動態的狀態資訊。
叢集管理員可以透過使用 scrgadm 指令或藉由圖形管理指令或介面來設定特定的資源特性。但是,請勿使用任何回呼方法呼叫 scrgadm,因為 scrgadm 在叢集重新配置過程中 (即 RGM 呼叫此方法時) 失敗。
通常,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 方法不需要具有等冪性。