用于 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 8.1 之前的支持版本的故障监视器包含在资源类型为 SUNW.s1as 的资源中。

资源类型的系统属性和扩展属性控制故障监视器的行为。这些属性的缺省值确定了故障监视器的预设行为。预设行为应该适用于大多数 Sun Cluster 安装。因此,当需要修改此预设行为时,才应该调谐故障监视器。

调节这些故障监视器包括以下任务:

注册和配置 用于 Sun Java System Application Server 的 Sun Cluster HA 时,执行以下任务(如注册和配置 用于 Sun Java System Application Server 的 Sun Cluster HA 8.1 之前的支持版本中所述)。

有关这些任务的详细信息,请参见《Sun Cluster Data Services Planning and Administration Guide for Solaris OS》中的“Tuning Fault Monitors for Sun Cluster Data Services”

本节提供了以下信息。

探测期间 用于 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. 基于故障的历史记录,故障会导致本地重新启动或数据服务的故障转移。