Sun Java System Messaging Server 6 2005Q4 管理指南

自動重新啟動失敗或無回應的服務

Messaging Server 提供了兩個程序,分別稱為 watchermsprobe,這兩個程序不需設定即可監視服務,並且在服務當機或無回應 (服務掛機) 時自動重新啟動服務。watcher 可監視伺服器的當機。msprobe 透過檢查回應時間來監視伺服器的掛機。如果伺服器失敗或停止回應請求,則會自動重新啟動。表 4–4

表 4–4 watcher 和 msprobe 監視的服務

watcher (當機) 

msprobe (無回應掛機) 

IMAP、POP、HTTP、工作控制器、派送程式、郵件儲存 (stored)、imsched 和 MMP。(LMTP/SMTP 伺服器由派送程式監視,LMTP/SMTP 用戶端由 job_controller 監視。)

IMAP、POP、HTTP、憑證、工作控制器、郵件儲存 (stored)、 imsched、ENS、LMTP 和 SMTP

設定 local.watcher.enable=on (預設) 將監視程序故障和無回應的服務,並將錯誤訊息記錄至表示特定故障的預設記錄檔中。若要啟用自動重新啟動伺服器,請將 configutil 參數 local.autorestart 設定為 yes。依預設,此參數設定為 no

如果任一郵件儲存服務失敗或凍結,則啟動時啟用的所有郵件儲存服務都將重新啟動。例如,如果 imapd 失敗,則至少會重新啟動 storedimapd。如果其他郵件儲存服務 (如 POP 或 HTTP 伺服器) 正在執行,則不論是否失敗,都將重新啟動。

如果郵件儲存公用程式失敗或凍結,自動重新啟動功能也會發揮作用。例如,如果 mboxutil 失敗或凍結,系統將自動重新啟動所有郵件儲存伺服器。但請注意,這不會重新啟動公用程式。msprobe 每 10 分鐘執行一次。在 10 分鐘內 (可使用 local.autorestart.timeout 進行配置),最多可重新啟動服務和程序兩次。

不論 local.autorestart 是否設定為 yes,依預設,系統仍然監視服務並將故障或無回應錯誤訊息傳送至主控台,並且 msg_svr_base/data/log/watcher 會偵聽連接埠 49994,但可用 local.watcher.port 進行配置。

watcher 記錄檔在 msg_svr_base /data/log/watcher 中產生。此記錄檔不由記錄系統 (無自動重建或清除作業) 管理,並且記錄所有的伺服器啟動與停止情況。記錄檔範例如下:


watcher process 13425 started at Tue Oct 21 15:29:44 2003

Watched ’imapd’ process 13428 exited abnormally
Received request to restart:  store imap pop http
Connecting to watcher ...
Stopping http server 13440 .... done
Stopping pop server 13431 ... done
Stopping pop server 13434 ... done
Stopping pop server 13435 ... done
Stopping pop server 13433 ... done
imap server is not running
Stopping store server 13426 .... done
Starting store server .... 13457
checking store server status ...... ready
Starting imap server ..... 13459
Starting pop server ....... 13462
Starting http server ...... 13471

      

如需如何配置此功能更詳細的資訊,請參閱使用 msprobe 和 watcher 功能進行監視

msprobeimsched 控制。如果 imsched 當機,此事件將被 watcher 偵測到,並觸發重新啟動 (如果 autorestart 已啟用)。但是,如果偶爾發生 imsched 掛機,則需要使用 kill imsched_pid 來終止 imsched,這將會使 watcher 將其重新啟動。

高可用性佈署中的自動重新啟動

高可用性部署中的自動重新啟動需要設定以下 configutil 參數:

表 4–5 HA 自動重新啟動參數

參數 

說明/HA 值 

local.watcher.enable

啟用 watcher。On (預設為 On) 

local.autorestart

啟用 autorestart。On 

local.autorestart.timeout

失敗重新嘗試逾時。如果伺服器在指定時間內失敗兩次以上,系統將停止重新啟動伺服器的嘗試。如果這種情況發生在 HA 系統中,系統將關閉 Messaging Server,並故障轉移至另一系統。該值 (設定為秒) 應被設定為長於 msprobe 間隔 (local.schedule.msprobe) 的時間段。

local.schedule.msprobe

msprobe 執行排程。crontab 樣式排程字串 (請參閱表 18–10)。預設為 600 秒。