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

调节 Sun Cluster HA for Sun Java System Application Server 故障监视器

本节介绍 Sun Cluster HA for Sun Java System Application Server 故障监视器。

本节提供了以下信息。

扩展特性

Sun Cluster HA for Sun Java System Application Server 故障监视器使用下表中介绍的扩展特性。“可调”条目用于指明是可以动态更新特性还是仅在创建时才可以更新特性。

使用命令行 scrgadm -x parameter=value 在创建 Sun Java System Application Server 资源时配置扩展特性。关于扩展特性的详细信息,请参见 SUNW.s1as(5M) 手册页。有关所有 Sun Cluster 数据服务特性的详细信息,请参阅Sun Cluster 数据服务规划和管理指南(适用于 Solaris OS)》中的“标准特性”

表 1–2 Sun Cluster HA for Sun Java System Application Server 扩展特性

名称/数据类型 

说明 

Confdir_list(字符串数组)

指向某一特定 Sun Java System Application Server 实例的配置目录的完整路径。 

缺省值:

可调:创建时

Monitor_Uri_List(字符串)

故障监视器用来测试 Sun Java System Application Server 的功能的单个 URI 或 URI 列表。故障监视器通过在 URI 上执行 HTTP GET 来测试应用服务器。Monitor_Uri_List 扩展特性可用于探测已部署的应用程序的功能。通过将该特性设置为由 Sun Java System Application Server 上部署的应用程序提供服务的一个或多个 URI,来探测已部署的应用程序。如果 HTTP 服务器返回的代码是 500(内部服务器错误)或者如果连接失败,探测将采取操作。有关详细信息,请参见探测方法。

缺省值:

可调:任何时候

探测算法和功能

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