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

探测期间 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. 根据失败的历史记录和探测参数的设置,一次失败可能会导致本地重新启动或数据服务的故障转移。