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

Sun Cluster HA for Sun Java System Web Server 故障监视器

探测 Sun Cluster HA for Sun Java System Web Server 时使用向服务器发出请求来查询该服务器的运行情况。 在探测实际查询服务器之前,将进行检查以确认已针对此 Web 服务器资源配置了网络资源。 如果未配置网络资源,将记录一条错误消息(未找到资源的网络资源),并且探测将以失败结束。

探测必须进行 Sun Java System Web Server 的以下两项配置。

如果 Web 服务器处于安全模式并且探测无法从配置文件获得安全端口,将记录一条错误消息(无法分析配置文件),并且探测将以失败结束。 安全实例和不安全实例的探测包含通用步骤。

探测使用资源特性 Probe_timeout 指定的超时值来限制尝试成功探测 Sun Java System Web Server 所用的时间。 有关此资源特性的详细信息,请参见Sun Cluster 数据服务规划和管理指南(适用于 Solaris OS)》中的“标准特性”

Sun Java System Web Server 资源上的 Network_resources_used 资源特性设置确定了 Web 服务器使用的 IP 地址集。 Port_list 资源特性设置确定了 Sun Java System Web Server 使用的端口号的列表。 故障监视器假设 Web 服务器正在 IP 和端口的所有组合上进行侦听。 如果您将 Web 服务器配置定制为在端口 80 以及其它端口号上进行侦听,请确保作为结果的配置文件 (magnus.conf) 包含 IP 地址和端口的所有可能组合。 如果 Web 服务器未在特定的 IP 地址和端口组合上进行侦听,则故障监视器将尝试探测所有这些组合,并可能会失败。

探测将执行以下步骤。

  1. 探测使用指定的 IP 地址和端口组合连接到 Web 服务器。 如果连接失败,探测将断定已完全失败。 然后探测将记录故障并采取相应的操作。

  2. 如果探测连接成功,探测将检查 Web 服务器是否以安全模式运行。 如果是,探测将断开连接并以成功状态返回。 将不再对安全 Sun Java System Web Server 执行进一步的检查。

    但是,如果 Web 服务器正以不安全模式运行,探测将向 Web 服务器发送 HTTP 1.0 HEAD 请求并等待响应。 请求会因各种原因而失败,包括网络通信繁忙、系统负载大和配置错误。

    当 Web 服务器未配置为在要探测的所有 IP 地址和端口组合上进行侦听时,则会出现配置错误。 Web 服务器应该为针对此资源指定的每个 IP 地址的每个端口提供服务。

    如果在创建资源时未正确设置 Network_resources_usedPort_list 资源特性,也会导致配置错误。

    如果未在 Probe_timeout 资源时间限制内接收到对查询的回复,探测将认为此次探测是 Sun Cluster HA for Sun Java System Web Server 出了故障。 该故障将被记录在探测的历史记录中。

    探测故障可以是完全失败,也可以是部分失败。 以下探测故障被认为是完全失败。

    • 无法连接到服务器,如以下错误消息所示(%s 表示主机名,%d 表示端口号)。


      无法连接到 %s(端口 %d)
    • 尝试连接到服务器后,运行超时(超出资源特性超时值 Probe_timeout)。

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


      无法与服务器 %s 端口 %d 进行通信: %s

    监视器将在资源特性间隔 Retry_interval 内累计两个此类部分失败,并将它们计为一次失败。

    以下探测故障被认为是部分失败。

    • 尝试从服务器读取对探测查询的回复时,运行超时(超出资源特性超时值 Probe_timeout)。

    • 由于其它原因无法从服务器读取数据,如以下错误消息所示(第一个 %s 表示主机名,%d 表示端口号, 第二个 %s 表示有关错误的详细信息)。


      无法与服务器 %s 端口 %d 进行通信: %s
  3. 探测连接到 Sun Java System Web Server 服务器并通过向 Monitor_Uri_List 中的每个 URI 发送 HTTP 请求来执行 HTTP 1.1 GET 检查。 如果 HTTP 服务器返回的代码是 500(内部服务器错误)或者如果连接失败,探测将采取操作。

    HTTP 请求的结果可能是失败,也可能是成功。 如果所有请求都成功地从 Sun Java System Web Server 服务器收到了应答,则探测将返回并继续下一轮探测和休眠。

    网络通信繁忙、系统负载大和配置错误均会导致 HTTP GET 探测失败。 如果 Monitor_Uri_List 中的某个 URI 包含不正确的端口或主机名,则未正确配置 Monitor_Uri_List 特性会导致故障。 例如,如果 Web 服务器实例正在逻辑主机 schost-1 上进行侦听并且 URI 被指定为 http://schost-2/servlet/monitor,则探测将尝试联系 schost-2 以向 /servlet/monitor 提出请求。

    基于故障的历史记录,故障会导致本地重新启动或数据服务的故障切换。 在Sun Cluster 数据服务规划和管理指南(适用于 Solaris OS)》中的“Sun Cluster 数据服务故障监视器”中进一步介绍了此操作。