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

探测期间 用于 Sun Java System Application Server 的 Sun Cluster HA 故障监视器的操作

用于 Sun Java System Application Server 的 Sun Cluster HA 故障监视器探测将向服务器发送请求,以查询 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 表示端口号。


      无法连接到主机 <%s> 和端口 <%d>。收到的回复码为 500(内部服务器错误),
      %s 探测的 HTTP GET
      回复码为 500。将进行故障转移
    • 无法成功将探测字符串发送到服务器时会收到以下错误消息。第一个 %s 表示主机名,%d 表示端口号,第二个 %s 表示错误的更详细信息。


      向服务器写入数据失败:服务器 %s,端口 %d:%s。
  5. 监视器将累积 Retry_interval 资源属性设置内发生的部分失败,直至其等于一次完全失败。

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

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


      无法从资源 %s 的端口 %d 断开连接。
    • 无法在 Probe_timeout 时间内完成所有探测步骤是部分失败。

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


      无法与服务器 %s 端口 %d 进行通信: %s
  6. 基于故障的历史记录,故障会导致本地重新启动或数据服务的故障转移。