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

在用戶端與伺服器之間傳送 SC_CALLBACK_REG 訊息的方式

用戶端透過開啟與伺服器的 IP 位址和埠號碼的 TCP 連線開始註冊。 在建立了 TCP 連接並為寫入做好準備之後,用戶端必須發送其註冊訊息。 該註冊訊息必須是一條已正確格式化的 SC_CALLBACK_REG 訊息,在其前後都不包含額外位元組。

在將所有位元組寫入至串流之後,用戶端必須保持其連接的開啟狀態,才能接收到來自伺服器的回覆。 如果用戶端沒有正確格式化該訊息,則伺服器不會註冊該用戶端,並且會將錯誤的回覆發送給該用戶端。 如果該用戶端在伺服器發送回覆之前已關閉套接字連接,則伺服器會正常註冊該用戶端。

用戶端可以隨時聯絡伺服器。 每當用戶端聯絡伺服器時,該用戶端必須發送 SC_CALLBACK_REG 訊息。 如果該伺服器接收到形式錯誤的、順序紊亂的或者無效的訊息,便會將錯誤的回覆發送給該用戶端。

用戶端無法在發送 ADD_CLIENT 訊息之前發送 ADD_EVENTSREMOVE_EVENTS 或者 REMOVE_CLIENT 訊息。 用戶端無法在發送 ADD_CLIENT 訊息之前發送 REMOVE_CLIENT 訊息。

如果用戶端發送了 ADD_CLIENT 訊息,並且該用戶端已經註冊,則伺服器可以容許此訊息。 在此情形下,伺服器會以靜音方式將舊的用戶端註冊取代為在第二條 ADD_CLIENT 訊息中所指定的新的用戶端註冊。

在大多數情形下,用戶端透過在啟動時發送 ADD_CLIENT 訊息,在伺服器中註冊一次。 並且用戶端會透過將 REMOVE_CLIENT 訊息發送給伺服器,僅取消註冊一次。 然而,CRNP 會為需要動態修改其事件類型清單的那些用戶端提供更多靈活性。

SC_CALLBACK_REG 訊息的內容

每個 ADD_CLIENTADD_EVENTSREMOVE_EVENTS 訊息均包含事件的清單。 下表說明 CRNP 接受的事件類型,其中包括必需的名稱與值對。

如果用戶端:

則該伺服器會以靜音方式忽略這些訊息。

類別與子類別  

名稱與值對 

說明  

EC_Cluster

ESC_cluster_membership

必需的: 無 

可選用的: 無  

註冊所有叢集成員資格變更事件 (節點失效或節點連結) 

EC_Cluster

ESC_cluster_rg_state

有一項是必需的,如下所示: 

rg_name

值類型: 字串 

可選用的: 無  

註冊資源群組 name 的所有狀態變更事件

EC_Cluster

ESC_cluster_r_state

有一項是必需的,如下所示: 

r_name

值類型: 字串 

可選用的: 無  

註冊資源 name 的所有狀態變更事件

EC_Cluster

無 

必需的: 無  

可選用的: 無 

註冊所有 Sun Cluster 事件