Sun Cluster 資料服務開發者指南 (適用於 Solaris 作業系統)

實施回呼方法

本小節提供有關實作回呼方法的一般資訊。

存取資源和資源群組特性資訊

通常,回呼方法需要對資源特性的存取權。RMAPI 提供 shell 指令和 C 函數,可在回呼方法中使用以存取系統定義的資源特性和延伸資源特性。請參閱 scha_resource_get(1HA)scha_resource_get(3HA) 線上手冊。

DSDL 提供存取系統定義的特性的 C 函數集 (每種特性均具有一個函數),以及存取延伸特性的一個函數。請參閱 scds_property_functions(3HA)scds_get_ext_property(3HA) 線上手冊。

您無法使用特性機制儲存資料服務的動態狀態資訊,因為除 StatusStatus_msg 之外,沒有用於設定資源特性的 API 函數。相反,您應該在全域檔案中儲存動態的狀態資訊。


備註 –

叢集管理員可以透過使用 scrgadm 指令或藉由圖形管理指令或介面來設定特定的資源特性。但是,請勿使用任何回呼方法呼叫 scrgadm,因為 scrgadm 在叢集重新配置過程中 (即 RGM 呼叫此方法時) 失敗。


方法的等冪性

通常,RGM 不會使用同一引數在同一資源上連續多次呼叫一個方法。但是,如果 Start 方法失敗,即使資源從未啟動,RGM 也可以在資源上呼叫 Stop 方法。同樣,資源常駐程式可能因其自身原因中止,而 RGM 可能仍會在資源常駐程式上執行 Stop 方法。Monitor_startMonitor_stop 方法亦是如此。

由於這些原因,您必須在 StopMonitor_stop 方法中建立等冪性。使用同一引數在同一資源上多次呼叫 StopMonitor_stop,其效果與單次呼叫相同。

等冪性的一種含意為,即使資源或監視器已停止,並且不執行任何工作,StopMonitor_stop 也必須傳回 0 (成功)。


備註 –

InitFiniBootUpdate 方法必須也等冪。Start 方法不需要具有等冪性。