用於 Sun Java System Application Server 的 Sun Cluster 資料服務指南 (適用於 Solaris 作業系統)

探測演算法和功能

Sun Cluster HA for Sun Java System Application Server 探測將要求傳送至伺服器,以查詢 Sun Java System Application Server 伺服器的運作情況。 探測執行以下步驟:

  1. 根據使用 Probe_timeout 資源屬性設定的逾時值探測 Sun Java System Application Server 實例。

  2. 連接至由資源群組的網路資源配置和 Port_list 設定定義的 IP 位址和連接埠組合。 如果在無需空 Port_list 的情況下配置資源,則會略過此步驟。 如果連接成功,探測會取消連接。 如果連接失敗,系統將記錄失敗。

    大量的網路通訊、沉重的系統負載以及配置錯誤均會導致查詢失敗。 如果您未將 Sun Java System Application Server 伺服器配置為偵聽所有被探測的 IP 位址/埠組合,則會發生配置錯誤。 Sun Java System Application Server 伺服器應對為該資源指定的每個 IP 位址的每個埠提供服務。

  3. 連接至 Sun Java System Application Server 伺服器,並透過向 Monitor_Uri_List 中的每個 URI 傳送 HTTP 要求並接收回應,來執行 HTTP 1.1 GET 檢查。

    HTTP 要求的結果為失敗或成功。 如果所有要求均成功收到來自 Sun Java System Application Server 伺服器的回覆,探測將返回並繼續進行下一個探測和休息循環。

    大量的網路通訊、沉重的系統負載以及配置錯誤均會導致 HTTP GET 探測失敗。 如果 Monitor_Uri_List 中的 URI 包含不正確的連接埠或主機名稱,則 Monitor_Uri_List 屬性的配置錯誤會導致失敗。 例如,如果 Application Server 實例正在偵聽邏輯主機 schost-1,並且 URI 被指定為 http://schost-2/servlet/monitor,則探測將嘗試聯絡 schost-2 以要求 /servlet/monitor

  4. 如果在 Probe_timeout 限制內未收到對探測的回覆,則系統將在歷史日誌中記錄失敗。 探測會將此情況視為 Sun Java System Application Server 資料服務部分上的失敗。 Sun Java System Application Server 探測失敗可以為完全失敗或部分失敗。

    如果在 Probe_timeout 限制內收到對探測的回覆,則系統將檢查 HTTP 回覆碼。 如果回覆碼為 500「內部伺服器錯誤」,則探測將被視為完全失敗。 所有其他的回覆碼均被忽略。

    以下為完全探測失敗。

    • 連接至伺服器失敗時會收到以下錯誤訊息。 %s 表示主機名稱,%d 表示連接埠編號。


      無法連線至主機 <%s> 和連接埠 <%d>。收到的回覆碼為 500「內部伺服器錯誤」。 %s 探測的 HTTP GET 回覆碼為 500。將進行故障轉移。

    • 將探測字串傳送至伺服器失敗時會收到以下錯誤訊息。 第一個 %s 表示主機名稱,%d 表示連接埠編號,第二個 %s 表示有關錯誤的進一步詳細資訊。


      寫入伺服器失敗: 伺服器 %s 連接埠 %d:%s。

  5. 監視器累計在 Retry_interval 資源屬性設定內發生的部分失敗,直至相當於一次完全失敗。

    以下為部分探測失敗:

    • 如果無法在 Probe_timeout 設定的時間之前取消連接時,則會收到以下錯誤訊息。 第一個 %d 表示連接埠編號,%s 表示資源名稱。


      無法從資源 %$2s 的連接埠 %$1d 取消連接。

    • 無法在 Probe_timeout 時間內完成所有探測步驟為部分失敗。

    • 由於其他原因導致從伺服器讀取資料失敗時,會收到以下錯誤訊息。 第一個 %s 表示主機名稱,%d 表示連接埠編號。 第二個 %s 表示有關錯誤的進一步詳細資訊。


      無法與伺服器 %s 連接埠 %d 通訊:%s

  6. 根據失敗歷史,一個失敗可導致本機重新啟動或資料服務的故障轉移。