当服务器进程异常停止时,有几个服务器进程,操作系统可以监视和自动重新启动这些进程。
开始之前
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
要在 Linux 或受支持的
UNIX 操作系统上设置此功能,必须具有编辑 inittab 文件的 root 用户权限。
![[Windows]](../images/windows.gif)
要在
Microsoft Windows 操作系统上设置此功能,必须属于 Administrator 组,而且具有下列高级用户权限:
如果您的用户标识是 Administrator 组的一部分,安装向导授予您用户权利。
如果您在
Microsoft Windows 操作系统上运行,安装向导显示一条消息指出尽管高级用户权限现在是有效的,但是它们将在您下次登录 Windows 机器后,才显示为有效。
![[Windows]](../images/windows.gif)
如果您在 Windows 操作系统上执行静默安装,那么您还可手动添加高级用户权限。例如,在 Windows 操作系统上,要将用户权限授予 administrator 组用户标识,执行下列过程:
- 在“控制面板”中,单击管理工具。
- 单击本地安全策略。
- 单击本地策略。
- 单击用户权利分配。
- 右键单击作为操作系统的一部分。
- 单击安全性。
- 单击添加。
- 单击您的用户标识。
- 单击添加。
- 单击确定。
- 单击确定。
- 右键单击作为服务登录。
- 单击安全性。
- 单击添加。
- 单击确定。
- 单击确定。
- 重新引导您的机器,以使设置生效。
请查询 Windows 帮助系统,以了解更多信息。
关于此任务
存在多种环境,您可在其中使用此功能自动重新启动服务器。例如,您可重新启动
server1受管节点进程。此处是您可能考虑要重新启动的进程列表:
- server1 受管节点进程
- 独立应用程序服务器上的 server1 进程
- Deployment Manager 节点上的 dmgr 进程
- 任何受管节点上的 nodeagent 服务器进程
- IBM® HTTP
Server 进程
- IBM HTTP Administration 进程
![[Windows]](../images/windows.gif)
在 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]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
在 Linux 或受支持的 UNIX 操作系统上,您必须手动创建 shell 脚本,它将自动启动先前所提及的任何进程。每个
UNIX shell 脚本控制单个进程,如独立产品实例。多个独立应用程序服务器进程需要多个
UNIX 脚本(您可以定义)。
![[Windows]](../images/windows.gif)
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
在 WebSphere® Application Server Network Deployment 环境中,addNode 或 startNode 命令仅启动单个未监视的 Node Agent(nodeagent 进程),而不启动您可能在节点上定义的所有进程。在 Windows 或 Linux 和基于 UNIX 的平台上运行时,Node Agent 监视和重新启动此节点上的 Application Server 进程。每个 Application Server 进程具有 Node Agent 在监视和重新启动进程时使用的 MonitoringPolicy 配置设置。
建议对 Deployment Manager dmgr
服务器和对系统定义的任何 Node Agent 手动设置被监视进程。要设置被监视进程:
过程
使用 Profile Management Tool 来设置 Windows 服务,以自动监视和重新启动与产品有关的进程。
![[AIX]](../images/aixlogo.gif)
![[HP-UX]](../images/hpux.gif)
![[Linux]](../images/linux.gif)
安装产品后,设置 shell 脚本以自动监视和重新启动任何相关的服务器进程。
支持的配置: 完成此任务有两组子步骤。第一组子步骤不适用于 Red Hat Enterprise Linux V6 操作系统。有关此操作系统的更多信息,请参阅第二组子步骤。
sptcfg
- 找到 app_server_root/bin
目录中的 rc.was 示例 shell 脚本。
- 为操作系统要监视和重新启动的每个进程创建新的 shell 脚本。
- 根据每个 shell 脚本标题中的注释对脚本进行编辑,该脚本标题提供标识产品进程的指示信息。
- 编辑操作系统的 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
- 创建用于监视和重新启动进程的 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
- 创建用于重新启动服务器的 rc.as1 文件,并将其放入 WebSphere Application Server 的 install_root/bin 目录。 以下代码是 rc.as1 文件的示例内容:
#!/bin/sh
cd /opt/IBM/WebSphere/AppServer/profiles/profile_name/bin
./startServer.sh server_name
profile_name 表示应用程序服务器概要文件的名称。server_name 是服务器的名称。更改这些值以与环境匹配。
安装产品后,可以在 app_server_root\bin 目录中使用 WASService.exe 命令对另一安装实例或 server1 进程的另一配置实例手动定义 Windows 服务。
安装产品后,使用 WASService.exe 命令将 nodeagent 服务器进程手动定义为 Windows 服务。 您可使用相同的命令对另一安装实例手动定义 Windows 服务,也可以对
server1 进程或 dmgr 进程的另一个配置实例手动定义 Windows 服务。
在管理控制台中,单击。 启动管理控制台。在拓扑树中,展开“服务器”并单击“应用程序服务器”。单击需要自动启动的应用程序服务器的名称。单击“进程定义”。单击“监视策略”。将节点重新启动状态更改为“正在运行”。单击“应用”。保存配置。
选择要自动重新启动的应用程序服务器,然后在“服务器基础结构”下,单击 。
选择自动重新启动。
- 单击,然后单击以将更改直接保存到主配置。
结果
![[Windows]](../images/windows.gif)
在 Windows 操作系统上,可以
- 使用 net start 和 net 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 进程,这是因为操作系统最初不能启动进程作为监视的进程。
下一步做什么
设置进程后,操作系统可以监视每个服务器进程,并在进程停止时重新启动此进程。
返回“定义应用程序服务器进程管理控制台”页以继续。