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(默认值)将监视进程故障和未响应的服务,并且会将错误消息记录到 default 日志文件中以指明特定的故障。要启用服务器自动重新启动,请将 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 重新启动 imsched。

高可用性部署中的自动重新启动

高可用性部署中的自动重新启动需要设置以下 configutil 参数:

表 4–5 HA 自动重新启动参数

参数 

说明/HA 值 

local.watcher.enable

启用 watcher。打开(默认设置为“打开”) 

local.autorestart

启用 autorestart。打开 

local.autorestart.timeout

失败重试超时。如果服务器在此指定时间内失败超过两次,则系统将停止尝试重新启动服务器。如果这种情况发生在 HA 系统上,则将关闭 Messaging Server 并向另一个系统进行故障转移。应当将该值(以秒为单位设置)设置为比 msprobe 间隔 (local.schedule.msprobe) 长的时间段值。

local.schedule.msprobe

msprobe 运行计划。crontab 式样的计划字符串(请参见表 18–10)。默认值为 600 秒。