用于 Sun Java System Application Server 的 Sun Cluster 数据服务指南(适用于 Solaris OS)

探测算法和功能

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 特性的配置错误会导致故障。例如,如果应用服务器实例正在侦听逻辑主机 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 表示端口号。


      Failed to connect to the host <%s> and port <%d>. Receiving a response code of 500 “Internal Server Error” HTTP GET Response Code for probe of %s is 500. Failover will be in progress

    • 无法成功将探测字符串发送到服务器时会收到以下错误消息。第一个 %s 表示主机名,%d 表示端口号,第二个 %s 表示错误的更详细信息。


      Write to server failed:server %s port %d: %s.

  5. 监视器累积 Retry_interval 资源特性设置内发生的部分失败,直到相当于一次完全失败。

    下面是探测部分失败的一些例子:

    • 如果在 Probe_timeout 设置的时间内无法断开连接,则会收到以下错误消息。第一个 %d 表示端口号,%s 表示资源名称。


      Failed to disconnect from port %d of resource %s.

    • 无法在 Probe_timeout 时间内完成所有探测步骤是部分失败。

    • 由于其他原因从服务器读取数据时失败,会接收到以下错误消息。第一个 %s 表示主机名,%d 表示端口号。第二个 %s 表示错误的更详细信息。


      Failed to communicate with server %s port %d: %s

  6. 基于故障的历史记录,故障会导致本地重新启动或数据服务的故障转移。