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

變更方法程式碼

如果在更新的資源類型中僅變更方法程式碼,請務必確定新方法程式碼是否與舊版本相容。這樣可決定新方法程式碼是否必須儲存於新的路徑名稱中,或是否可以覆寫舊方法。

如果新的 StopPostnet_stop 以及 Fini 方法 (如果已宣告) 可以套用至由舊版 StartPrenet_stopInit 方法初始化或啟動的資源,則可能會以新方法覆寫舊方法。

如果新方法程式碼與舊版本不相容,則必須停止或取消配置使用舊版本方法的資源,然後才能將資源遷移至升級的資源類型。如果新方法覆寫舊方法,則在進行資源類型升級之前,新方法將要求關閉 (或可能不管理) 所有此類型的資源。如果新方法與舊方法個別儲存 (且可同時存取新方法與舊方法),則甚至在沒有向下相容性的情況下,都可能安裝新資源類型並逐個升級資源。

即使新方法是向下相容的,也可能要求每次升級一個資源以使用新方法,而其他資源繼續使用舊方法。仍有必要將新方法儲存於個別目錄中,而非覆寫舊方法。

將每個資源類型版本的方法儲存於個別目錄中的優勢是,如果新的版本出現問題,可以很容易將資源切換回舊的資源類型版本。

一個封裝方法是包含套件中仍支援的所有舊版本。這樣可允許新的套件版本取代舊的版本,而不覆寫或刪除舊方法路徑。決定支援多少個舊版本取決於資源類型開發者。


注意 –

建議不要覆寫方法或對目前位於叢集中節點上的方法執行 pkgrm/pkgadd。如果 RGM 要在某個方法於磁碟上不可存取時呼叫該方法,則可能出現非預期的結果。移除或取代正在執行方法的二進位碼也可能引起非預期的結果。