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

使用持續連接

在伺服器端,針對非作用中 (或者網路分割) 的用戶端使用 TCP 持續連接可防止伺服器浪費系統資源。 如果尚未清除這些資源 (在工作了足夠長時間的伺服器中),則最後當用戶端當機與重新啟動時浪費的資源會無限增加。

如果主從式通訊使用 TCP 串流,則用戶端與伺服器都應該啟用 TCP 持續連接機制。 甚至在非 HA 的單一伺服器情形下,此規定也適用。

其他導向連接協定也可以具有持續連接機制。

在用戶端,使用 TCP 持續連接可使用戶端在網路位址資源從一個實體主機故障轉移或者切換保護移轉至另一個實體主機時得到通知。 網路位址資源的該傳送會中斷 TCP 連接。 然而,除非用戶端已啟用持續連接,否則,如果當時連接突然中斷,該用戶端未必會獲悉連接中斷。

例如,假定用戶端等待伺服器對長時間要求的回應,用戶端的要求訊息已經到達伺服器,並且在 TCP 層已對該訊息做出回應。 在此情形下,用戶端的 TCP 模組不需要保持重新傳輸要求狀態,用戶端應用程式會被封鎖,並等待對要求的回應。

在可能的情況下,除使用 TCP 保持連接機制之外,用戶端應用程式還必須在其應用程式層級自己執行週期性保持連接,因為 TCP 保持連接機制並非在所有可能的界限情況下均完美無缺。 使用應用程式層級保持連接一般需要主從式協定支援虛擬作業,或者至少需要有效率的唯讀作業 (例如,狀況作業)。