[AIX Solaris HP-UX Linux Windows][IBM i]

自动重新启动服务器进程

当服务器进程异常停止时,有几个服务器进程,操作系统可以监视和自动重新启动这些进程。

开始之前

[AIX][HP-UX][Linux][Solaris]要在 Linux 或受支持的 UNIX 操作系统上设置此功能,必须具有编辑 inittab 文件的 root 用户权限。

[Windows]要在 Microsoft Windows 操作系统上设置此功能,必须属于 Administrator 组,而且具有下列高级用户权限:
  • 作为操作系统的一部分
  • 作为服务登录

如果您的用户标识是 Administrator 组的一部分,安装向导授予您用户权利。

[Windows]如果您在 Microsoft Windows 操作系统上运行,安装向导显示一条消息指出尽管高级用户权限现在是有效的,但是它们将在您下次登录 Windows 机器后,才显示为有效。

[Windows]如果您在 Windows 操作系统上执行静默安装,那么您还可手动添加高级用户权限。例如,在 Windows 操作系统上,要将用户权限授予 administrator 组用户标识,执行下列过程:
  1. 在“控制面板”中,单击管理工具
  2. 单击本地安全策略
  3. 单击本地策略
  4. 单击用户权利分配
  5. 右键单击作为操作系统的一部分
  6. 单击安全性
  7. 单击添加
  8. 单击您的用户标识。
  9. 单击添加
  10. 单击确定
  11. 单击确定
  12. 右键单击作为服务登录
  13. 单击安全性
  14. 单击添加
  15. 单击确定
  16. 单击确定
  17. 重新引导您的机器,以使设置生效。

[Windows]请查询 Windows 帮助系统,以了解更多信息。

关于此任务

存在多种环境,您可在其中使用此功能自动重新启动服务器。例如,您可重新启动 server1受管节点进程。此处是您可能考虑要重新启动的进程列表:
  • server1 受管节点进程
  • 独立应用程序服务器上的 server1 进程
  • Deployment Manager 节点上的 dmgr 进程
  • 任何受管节点上的 nodeagent 服务器进程
  • IBM® HTTP Server 进程
  • IBM HTTP Administration 进程
[Windows]在 Windows 操作系统上,您可在安装期间使用安装向导创建 Windows 服务。每个 Windows 服务控制单个进程,如独立产品实例。多个独立应用程序服务器进程需要多个 Windows 服务(您可以定义)。向导允许您为这些服务器创建服务:
  • server1 受管节点进程,定义为手动启动(对应于自动启动)服务。
  • server1 独立应用程序服务器进程,定义为手动启动服务
  • IBM HTTP Server 进程和 IBM HTTP Administration 进程,定义为在您需要安装 IBM HTTP Server 功能部件时自动启动服务。
  • Deployment Manager 节点上的 dmgr 进程,定义为手动启动服务

安装向导不提供为 Node Agent 创建服务的方法,因为当您将 Application Server 节点添加到 Deployment Manager 单元时,Deployment Manager 在安装后实例化每个 Node Agent。由于此原因,您必须手动创建自动启动失败的 Node Agent 服务器进程的功能。

[AIX][HP-UX][Linux][Solaris]在 Linux 或受支持的 UNIX 操作系统上,您必须手动创建 shell 脚本,它将自动启动先前所提及的任何进程。每个 UNIX shell 脚本控制单个进程,如独立产品实例。多个独立应用程序服务器进程需要多个 UNIX 脚本(您可以定义)。

[Windows][AIX][HP-UX][Linux][Solaris]WebSphere® Application Server Network Deployment 环境中,addNodestartNode 命令仅启动单个未监视的 Node Agent(nodeagent 进程),而不启动您可能在节点上定义的所有进程。在 Windows 或 Linux 和基于 UNIX 的平台上运行时,Node Agent 监视和重新启动此节点上的 Application Server 进程。每个 Application Server 进程具有 Node Agent 在监视和重新启动进程时使用的 MonitoringPolicy 配置设置。

建议对 Deployment Manager dmgr 服务器和对系统定义的任何 Node Agent 手动设置被监视进程。要设置被监视进程:
  • [Windows]使用 Windows 服务。可以在安装期间或以后安装 WebSphere Application Server Network Deployment 产品作为 Windows 服务。
  • [Linux]使用 WASService 命令。有关更多信息,请参阅 WASService 命令的文档。作为一种替代方法,您也可以使用 rc.was 示例 shell 脚本。
    支持的配置 支持的配置: 在 Red Hat Enterprise Linux V6 操作系统上,请不要使用 rc.was 示例 shell 脚本。相反地,请执行本主题中与此操作系统相关的特定步骤。sptcfg
  • [AIX][HP-UX][Solaris]使用相应版本的产品所随附的 rc.was 示例 shell 脚本。

过程

  1. [Windows]使用 Profile Management Tool 来设置 Windows 服务,以自动监视和重新启动与产品有关的进程。
    • 从 Profile Management Tool 执行下列过程,以选择安装向导可设置的服务:
      1. 单击作为服务运行 WebSphere Application Server Network Deployment
        如果您选择此选项,那么安装向导在安装期间创建下列服务:
        IBMWAS6Service - node_name

        IBMWAS6Service - node_name 服务控制 node_name 进程。

        在您完成并验证安装后,使用 Windows“服务”面板将 IBMWAS6Service - node_name 服务更改为自动启动类型。
        1. 右键单击 IBMWAS6Service - node_name,然后单击属性
        2. 启动类型列表框单击自动,然后单击确定
      2. 单击作为服务运行 IBM HTTP Server

        在您安装 IBM HTTP Server 的机器上选择此选项。

        如果您选择此选项,那么安装向导在安装期间创建下列服务:
        • IBM HTTP Server 2.0.x
        • IBM HTTP Administration 2.0.x
        安装向导定义这些服务的启动类型为自动。您无须将类型从手动更改为自动。
      3. 输入您的用户标识和密码,然后单击下一步

      在共存环境中,您可更改缺省服务名使它们成为唯一的服务名。在 Windows 平台上的 IBM HTTP Server 2.0.x 的同一版本共存方案中,您无法使用安装程序创建的缺省服务名称,因为它们是公共的。

      要解决此问题,请执行以下操作:
      1. 由 IBM HTTP Server 本身或与产品一起安装 IBM HTTP Server 的第一个副本,并选择安装这些服务。
      2. 通过从第一个安装位置运行下列命令来定制第一个安装的服务名称:
             apache -k install -n "IHS 2.0(1)"
             apache -k install -f conf\admin.conf -n "IHS 2.0 Administration (1)"
      3. 编辑 installLocation 1\conf\admin.conf 文件中的 AdminAlias 伪指令,以指向新的服务名称,如 IHS 2.0(1)
      4. 通过运行以下命令,移除第一个安装所安装的缺省服务名称:
             apache -k uninstall -n "IBM HTTP Server 2.0"
             apache -k uninstall -n "IBM HTTP Administration 2.0"
      5. 由 IBM HTTP Server 本身或与产品一起安装 IBM HTTP Serve 的第二个副本。缺省服务名称对应于第二个安装。
      避免故障 避免故障: 在系统上,定制服务名称必须唯一。gotcha
  2. [AIX][HP-UX][Linux][Solaris]安装产品后,设置 shell 脚本以自动监视和重新启动任何相关的服务器进程。
    支持的配置 支持的配置: 完成此任务有两组子步骤。第一组子步骤不适用于 Red Hat Enterprise Linux V6 操作系统。有关此操作系统的更多信息,请参阅第二组子步骤。sptcfg
    1. 找到 app_server_root/bin 目录中的 rc.was 示例 shell 脚本。
    2. 为操作系统要监视和重新启动的每个进程创建新的 shell 脚本。
    3. 根据每个 shell 脚本标题中的注释对脚本进行编辑,该脚本标题提供标识产品进程的指示信息。
    4. 编辑操作系统的 inittab 文件,为您已创建的每个 shell 脚本添加一个条目。

      rc.was 文件的标题中的注释包括一个样本 inittab 输入行,用于将此脚本添加至 inittab 表。每个 inittab 条目均会导致每当系统初始化时,操作系统对指定的 shell 脚本进行调用。当每个 shell 脚本运行时,将监视并启动您所指定的服务器进程。

      例如,如果为进程创建以下 inittab 条目,那么每当系统初始化时,将运行 rc.was shell 脚本,并且在系统正初始化到以运行级别 2、3 或 5 来操作的机器时,如果进程关闭,那么也将运行该脚本:
      was:235:respawn:/usr/WebSphere/AppServer/bin/rc.was >/dev/console 2>&1 
      如果创建以下 inittab 条目,那么仅当系统正初始化到以运行级别 2、3 或 5 来操作的机器时,才运行 rc.was shell 脚本一次:
      was:235:once:/usr/WebSphere/AppServer/bin/rc.was >/dev/console 2>&1 
      以下是一个可指定的运行级别列表。运行级别通常缺省为 3 或 5。
      • 0 - 中止
      • 1 - 单用户方式
      • 2 - 多用户,没有 NFS(如果未使用网络,那么此级别等效于 3)
      • 3 - 完整多用户方式
      • 4 - 未使用
      • 5 - X11
      • 6 - 重新引导
      如果不知道机器要引导至的运行级别,请查看 inittab 文件中的以下行:
      id:x:initdefault

      其中 x 是机器要引导至的运行级别。

      例如,如果机器要引导至运行级别 5,那么将启动所有声明为以运行级别 5 运行的进程。

      避免故障 避免故障: 从 inittab 文件运行的任何内容都以 root 用户运行。因此,如果需要在机器启动时,让服务器自动以非 root 用户标识启动进程,那么还必须对 inittab 文件添加以下行:
      su user -c values

      其中 values 是用于调用您所创建的 rc 脚本的文件路径和自变量,而 user 是产品配置为运行方式的非 root 用户。

      gotcha
    WebSphere Application Server Network Deployment 环境中,每个 shell 脚本监视和重新启动下列进程:
    • 受管节点上的服务器进程
    • 受管节点上的 Node Agent 进程
    • 独立应用程序服务器进程
    • Deployment Manager 进程
    支持的配置 支持的配置: 下列一组子步骤适用于 Red Hat Enterprise Linux V6 操作系统。sptcfg
    1. 创建用于监视和重新启动进程的 as1.conf 文件,并将其放入 /etc/init 目录。 以下代码是 as1.conf 文件的示例内容:
      # upstart service for my application server profile
      
      description  "my application server"
      
      start on runlevel [235]
      stop on runlevel [!235]
      
      expect fork
      respawn
      
      exec /opt/IBM/WebSphere/AppServer/bin/rc.as1
    2. 创建用于重新启动服务器的 rc.as1 文件,并将其放入 WebSphere Application Serverinstall_root/bin 目录。 以下代码是 rc.as1 文件的示例内容:
      #!/bin/sh
      cd /opt/IBM/WebSphere/AppServer/profiles/profile_name/bin
      ./startServer.sh server_name

      profile_name 表示应用程序服务器概要文件的名称。server_name 是服务器的名称。更改这些值以与环境匹配。

  3. [Windows]安装产品后,可以在 app_server_root\bin 目录中使用 WASService.exe 命令对另一安装实例或 server1 进程的另一配置实例手动定义 Windows 服务。
  4. [Windows]安装产品后,使用 WASService.exe 命令将 nodeagent 服务器进程手动定义为 Windows 服务。

    您可使用相同的命令对另一安装实例手动定义 Windows 服务,也可以对 server1 进程或 dmgr 进程的另一个配置实例手动定义 Windows 服务。

  5. [IBM i]在管理控制台中,单击服务器 > 服务器类型 > WebSphere 应用程序服务器 > server_name > 进程 启动管理控制台。在拓扑树中,展开“服务器”并单击“应用程序服务器”。单击需要自动启动的应用程序服务器的名称。单击“进程定义”。单击“监视策略”。将节点重新启动状态更改为“正在运行”。单击“应用”。保存配置。
  6. [IBM i]选择要自动重新启动的应用程序服务器,然后在“服务器基础结构”下,单击 Java 和进程管理 > 监视策略
  7. [IBM i]选择自动重新启动
  8. 单击应用,然后单击保存以将更改直接保存到主配置。

结果

[Windows]在 Windows 操作系统上,可以
  • 使用 net startnet stop 命令控制 Windows 系统上的 IBM HTTP Server 服务。有关这些命令的更多信息,请参阅 Windows 帮助文件。通过单击开始 > 程序 > IBM HTTP Server,从“开始”菜单访问这些命令。
  • 使用启动服务器停止服务器命令控制产品进程。通过单击开始 > 程序 > IBM WebSphere > Application Server,从“开始”菜单访问这些命令。
  • 使用启动管理器停止管理器命令来控制 WebSphere Application Server Network Deployment dmgr 进程。通过单击开始 > 程序 > IBM WebSphere > Application Server > Deployment Manager,从“开始”菜单访问这些命令。

通过 startServer 命令、startNode 命令或 startManager 命令启动的进程不会作为被监视进程运行,不管它们如何配置都是如此。

例如,您可配置 server1 进程作为监视的进程。但是,如果您使用 startServer 命令启动 server1 进程,那么操作系统不会监视或重新启动 server1 进程,这是因为操作系统最初不能启动进程作为监视的进程。

下一步做什么

设置进程后,操作系统可以监视每个服务器进程,并在进程停止时重新启动此进程。

返回“定义应用程序服务器进程管理控制台”页以继续。


指示主题类型的图标 任务主题



时间戳记图标 最近一次更新时间: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=trun_processrestart
文件名:trun_processrestart.html