用于 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 的支持版本的域管理服务器 (DAS) 组件的故障监视器包含在资源类型为 SUNW.jsas 的资源中。

资源类型的系统属性和扩展属性控制故障监视器的行为。这些属性的缺省值确定了故障监视器的预设行为。预设行为应该适用于大多数 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”

本节提供了以下信息。

探测期间 DAS 组件的故障监视器的操作

用于 Sun Java System Application Server 的 Sun Cluster HA 的 DAS 组件的故障监视器探测将向服务器发送请求,以查询 Sun Java System Application Server 服务器的运行状况。故障监视器的操作取决于 Monitor_Uri_List 扩展属性的设置。

设置 Monitor_Uri_List 属性时的故障监视器操作

在将 Monitor_Uri_List 扩展属性设置为单一的 URI 或 URI 列表时,故障监视器探测将执行以下步骤。

  1. 故障监视器将根据由 Probe_timeout 资源属性设置的超时值来探测 Sun Java System Application Server 实例。

  2. 探测将连接到 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

  3. 如果在 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。
  4. 监视器将累积 Retry_interval 资源属性设置内出现的部分失败,直至其等于一次完全失败。

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

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


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

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


      无法与服务器 %s 端口 %d 进行通信: %s
  5. 根据失败的历史记录和探测参数的设置,一次失败可能会导致本地重新启动或数据服务的故障转移。

设置 Monitor_Uri_List 属性时的故障监视器操作

如果设置 Monitor_Uri_List 扩展属性,故障监视器探测将执行以下步骤。

  1. 故障监视器将根据由 Probe_timeout 资源属性设置的超时值探测 Sun Java System Application Server 实例。

  2. 探测将使用 asadmin 命令来获取域管理服务器 (DAS) 的状态,如下所示:


    $INSTALL_DIR/appserver/bin/asadmin list-domains --domaindir $DOMAIN_DIR

    设置以下环境变量。

    • INSTALL_DIR 为使用 Confdir_list 扩展属性设置的安装位置。

    • DOMAIN_DIR 为指向域目录的完整路径。

    • DOMAIN_NAME 为域名。

  3. 如果探测确定 DAS 没有运行,将导致完全失败。

  4. 根据失败的历史记录和探测参数的设置,一次失败可能会导致本地重新启动或数据服务的故障转移。