WebSphere(WAS)

WebSphere (WebSphere Application Server)为 SOA 环境提供软件,以实现动态的、互联的业务流程,为所有业务情形提供高度有效的应用程序基础架构。WebSphere 是 IBM 的应用程序和集成软件平台,包含所有必要的中间件基础架构(包括服务器、服务和工具),这些基础架构是创建、部署、运行和持续监视企业级 Web 应用程序和跨平台、跨产品的解决方案所必需的。

一、服务器上查看was安装环境是集群模式还是非集群模式

🔍 **方法一:通过管理控制台验证(最直观)**

  1. **登录管理控制台**

访问:`https://<主机名>:9043/ibm/console`(默认端口9043,根据实际配置可能不同)

  1. **检查左侧导航菜单**
  • ✅ **集群环境标志**:

  • 存在 **"系统管理" > "节点"** 菜单(显示多个节点)

  • 存在 **"服务器" > "服务器类型" > "WebSphere Application Server 集群"** 菜单

  • 存在 **"部署管理器"** 相关的监控选项

  • ❌ **非集群环境标志**:

  • 只有 **"服务器" > "服务器类型" > "WebSphere Application Server"**(显示单个服务器)

  • 无"集群"相关菜单

  1. **查看拓扑图**
  • 在控制台首页或 **"系统和应用程序管理" > "拓扑图"** 中:

  • 集群环境会显示 **Deployment Manager → 多个节点(Node) → 多个服务器(Server)**

  • 非集群环境只显示 **单个服务器(Server)**


⚙️ **方法二:通过文件系统检查**

  1. **检查安装目录结构**

进入WAS安装目录(如 `/opt/IBM/WebSphere/AppServer/profiles`):

```bash

cd /opt/IBM/WebSphere/AppServer/profiles

ls -l

```

  • ✅ **集群环境特征**:

  • 存在 **`Dmgr01`**(Deployment Manager的profile目录)

  • 存在多个节点profile(如 `AppSrv01`, `AppSrv02`)

  • ❌ **非集群环境特征**:

  • 只有 **单个profile**(如 `AppSrv01`)且名称不含 `Dmgr`

  1. **检查节点配置文件**

进入节点的profile目录(如 `AppSrv01/config/cells`):

```bash

cat AppSrv01/config/cells/*/nodes/*/serverindex.xml | grep cluster

```

  • 如果输出包含 `<clusterName>` 标签 → 集群环境

  • 无输出或报错 → 可能为非集群环境


🖥 **方法三:通过进程检查**

  1. **查看运行中的进程**

在Linux/Unix系统执行:

```bash

ps -ef | grep java

```

  • ✅ **集群环境进程**:

  • `Deployment Manager`(进程名含 `dmgr`)

  • `Node Agent`(进程名含 `nodeagent`)

  • 多个`AppServer`进程(名称不同,如 `server1`, `server2`)

  • ❌ **非集群环境进程**:

  • 仅 **单个`AppServer`进程**(通常名为 `server1`)

  • 可能包含 `nodeagent`(但无 `dmgr`)


📟 **方法四:通过命令行工具验证**

  1. **使用 `wsadmin` 查询**

在任意profile的bin目录执行:

```bash

./wsadmin.sh -lang jython -c "print(AdminConfig.getid('/Cluster:/'))"

```

  • 返回类似 `WebSphere:platform=common,cell=cellName,cluster=clusterName` → 集群环境

  • 返回 **空值或错误** → 非集群环境

  1. **检查节点状态**

```bash

./serverStatus.sh -all

```

  • ✅ **集群环境输出**:

```

DMGR: 正在运行

nodeagent: 正在运行

server1: 正在运行

server2: 正在运行

```

  • ❌ **非集群环境输出**:

```

server1: 正在运行

```


📌 **关键判断依据总结**

| **特征** | 集群环境 | 非集群环境(独立) |

|------------------------|-----------------------------|---------------------------|

| **管理控制台菜单** | 有"集群"和"节点"菜单 | 仅"服务器"菜单 |

| **Deployment Manager** | 存在(进程和目录) | 不存在 |

| **节点数量** | ≥2个节点 | 仅1个节点(本地节点) |

| **Server数量** | ≥2个(分布在多个节点) | 仅1个server |

| `wsadmin` 查询集群 | 返回集群ID | 返回空/错误 |

| **配置文件** | serverindex.xml含`<cluster>`| 无集群配置 |


💡 特殊情况说明

  1. **单节点集群**:

理论上可能存在(一个节点包含多个server),此时:

  • 控制台会显示"集群"菜单

  • `serverStatus.sh -all` 会显示多个server

  • 但物理节点只有一个(通过 `管理控制台 > 系统管理 > 节点` 确认)

  1. **Node Agent的存在**:
  • 非集群环境 **也可能有Node Agent**(用于独立服务器的管理)

  • **关键区别**:集群环境必须同时存在 **Deployment Manager + Node Agent + 多个Server**


通过以上任何一种方法交叉验证,即可100%确定WAS环境类型。**推荐优先使用管理控制台或 `serverStatus.sh -all` 命令**,这两种方式最直接可靠。

ode Agent 和关键 Server 的启动、停止和监控。

  1. **控制台启停风险:** 在大型生产集群中,避免频繁在控制台点"启动"/"停止"整个集群,这可能导致所有成员同时启停造成服务中断。应使用滚动重启策略或金丝雀发布等更稳妥的方式。

**启动后验证命令 (在对应 profile bin 目录下):**

* `./serverStatus.sh -all` (Linux/Unix)

* `serverStatus.bat -all` (Windows)

* 这会列出该 Profile 下所有进程(Dmgr, NodeAgent, Servers)的状态。

选择正确的方式并遵循顺序,是确保 WAS 环境稳定启动的关键!💪🏻

二、集群非集群was重启

在 IBM WebSphere Application Server (WAS) 中,"集群式" 和 "非集群"(通常指单服务器或独立服务器)环境的启动方式有显著区别。核心差异在于集群环境需要额外的管理组件(Deployment Manager - Dmgr)来协调多个节点上的服务器进程。

以下是两种环境的主要启动流程:

🖥 一、非集群环境(独立服务器 / Standalone Server)

这种环境通常只有一个应用服务器进程(或一个Node包含一个服务器),没有Deployment Manager。启动相对简单。

  1. **启动 Node Agent (可选但推荐):**

* Node Agent 管理节点上的服务器进程,处理与 Dmgr 的通信(即使没有 Dmgr,启动它也有利于管理)。**在集群环境中它至关重要,在独立环境启动它也是好的实践。**

* **命令:**

* Linux/Unix: `cd <WAS_HOME>/profiles/<Profile_Name>/bin` 然后 `./startNode.sh`

* Windows: `cd <WAS_HOME>\profiles\<Profile_Name>\bin` 然后 `startNode.bat`

* **验证:** 查看 `startNode.log` (在 `logs/nodeagent` 目录下) 或使用 `./serverStatus.sh -all` (Linux) / `serverStatus.bat -all` (Windows) 检查状态。

  1. **启动应用服务器 (Server):**

* 这是实际运行你的应用程序的 JVM 进程。

* **命令:**

* Linux/Unix: `cd <WAS_HOME>/profiles/<Profile_Name>/bin` 然后 `./startServer.sh server1` (将 `server1` 替换为你的服务器实例名,默认为 `server1`)。

* Windows: `cd <WAS_HOME>\profiles\<Profile_Name>\bin` 然后 `startServer.bat server1`。

* **验证:**

* 查看 `startServer.log` (在 `logs/server1` 目录下)。

* 使用 `./serverStatus.sh -all` (Linux) / `serverStatus.bat -all` (Windows) 查看 `server1` 状态应为 `STARTED`。

* 访问管理控制台 (https://<主机名>:9043/ibm/console) 或应用程序 URL。

🔄 二、集群环境

集群环境包含一个 Deployment Manager (Dmgr)、一个或多个节点(Node,每个节点上运行 Node Agent),每个节点包含一个或多个应用服务器(这些服务器是集群的成员)。启动需要遵循顺序。

  1. **启动 Deployment Manager (Dmgr):**

* Dmgr 是集群的大脑,负责配置管理、集群操作协调。

* **命令:**

* Linux/Unix: `cd <DMGR_HOME>/profiles/<Dmgr_Profile_Name>/bin` 然后 `./startManager.sh`

* Windows: `cd <DMGR_HOME>\profiles\<Dmgr_Profile_Name>\bin` 然后 `startManager.bat`

* **验证:**

* 查看 `startManager.log` (在 `logs/dmgr` 目录下)。

* 访问 Dmgr 的管理控制台 (https://<Dmgr主机名>:9043/ibm/console) 应能成功加载。使用 `./serverStatus.sh -all` 检查 `dmgr` 状态应为 `STARTED`。

  1. **启动各节点上的 Node Agent:**

* **在每个托管了集群成员的节点上执行此操作。**

* Node Agent 作为 Dmgr 和该节点上服务器进程之间的中介。

* **命令 (在每个节点的 profile bin 目录下执行):**

* Linux/Unix: `cd <NODE_HOME>/profiles/<Node_Profile_Name>/bin` 然后 `./startNode.sh`

* Windows: `cd <NODE_HOME>\profiles\<Node_Profile_Name>\bin` 然后 `startNode.bat`

* **验证 (在每个节点):**

* 查看 `startNode.log` (在 `logs/nodeagent` 目录下)。

* 使用 `./serverStatus.sh -all` (Linux) / `serverStatus.bat -all` (Windows) 检查 `nodeagent` 状态应为 `STARTED`。

* 回到 **Dmgr 的管理控制台** -> "系统管理" -> "节点",查看对应节点的状态是否变为 **"同步的" (Synchronized)**。这是关键一步,表示节点已准备好接收 Dmgr 的指令。

  1. **启动集群或集群成员:**

* **方法一: 通过 Deployment Manager 管理控制台 (推荐)**

* 登录 Dmgr 的管理控制台 (https://<Dmgr主机名>:9043/ibm/console)。

* 导航到 "服务器" -> "服务器类型" -> "WebSphere Application Server 集群"。

* 选择你要启动的集群。

* 点击顶部操作菜单中的 **"启动"**。Dmgr 会将启动命令发送给各节点上的 Node Agent,由 Node Agent 实际启动该集群的所有成员服务器。

* **方法二: 使用 wsadmin 脚本 (适合自动化)**

* 在 Dmgr 的 profile bin 目录下运行 `wsadmin.sh`/`wsadmin.bat`。

* 连接到 Dmgr (通常使用 SOAP 连接): `$AdminControl connect <Dmgr主机名> <SOAP端口>` (默认 8879)

* 获取集群对象并启动:

```jython

clusterName = "Your_Cluster_Name"

cluster = AdminControl.completeObjectName('type=Cluster,name=' + clusterName + ',*')

AdminControl.invoke(cluster, 'start')

```

* **方法三: 在 Dmgr 上使用命令行 (间接)**

* `cd <DMGR_HOME>/profiles/<Dmgr_Profile_Name>/bin`

* Linux: `./startServer.sh <Cluster_Member_Server_Name>` (但更常用控制台或wsadmin启动整个集群)

* **强烈建议使用控制台或 wsadmin 来操作集群整体。**

* **验证:**

* 在 **Dmgr 管理控制台** -> "服务器" -> "服务器类型" -> "WebSphere Application Server 集群" 或 "服务器" -> "所有服务器" 中查看集群成员状态应为 `STARTED`。

* 在 **各节点** 上使用 `./serverStatus.sh -all` / `serverStatus.bat -all` 查看具体的服务器实例状态。

* 查看各集群成员服务器自己的 `startServer.log` (在对应节点的 `logs/<server_name>` 目录下)。

* 访问应用程序的负载均衡 URL 测试功能。

📌 关键点总结与注意事项

  1. **顺序很重要 (集群):** `Dmgr` -> `Node Agent(s)` (等待节点状态变为"同步的") -> `集群/服务器成员`。

  2. **Node Agent 的角色:** 在集群中是 **必需的** 通信桥梁。在独立环境中启动它也是好的实践。

  3. **集群启动:** **强烈建议通过 Deployment Manager (控制台或 wsadmin) 来启动整个集群或集群成员**。直接在节点上 `startServer.sh` 启动单个集群成员通常不被推荐,因为这可能绕过 Dmgr 的管理和同步机制,导致配置不一致。如果必须单独启停某个成员,也应**优先使用 Dmgr 控制台**上该成员服务器的操作选项。

  4. **配置文件路径:** 确保在正确的 Profile 的 `bin` 目录下执行命令 (`<WAS_HOME>/profiles/<Your_Profile_Name>/bin`)。

  5. **日志:** 启动失败时,查看对应的日志文件 (`startManager.log`, `startNode.log`, `startServer.log`) 是首要的故障排除步骤。

  6. **生产环境:** 通常会配置操作系统服务 (如 Linux 的 `systemd` 或 Windows 服务) 来自动管理 Dmgr、N

相关推荐
Nueuis16 分钟前
微信小程序前端面经
前端·微信小程序·小程序
_r0bin_3 小时前
前端面试准备-7
开发语言·前端·javascript·fetch·跨域·class
IT瘾君3 小时前
JavaWeb:前端工程化-Vue
前端·javascript·vue.js
potender3 小时前
前端框架Vue
前端·vue.js·前端框架
站在风口的猪11083 小时前
《前端面试题:CSS预处理器(Sass、Less等)》
前端·css·html·less·css3·sass·html5
程序员的世界你不懂4 小时前
(9)-Fiddler抓包-Fiddler如何设置捕获Https会话
前端·https·fiddler
MoFe14 小时前
【.net core】天地图坐标转换为高德地图坐标(WGS84 坐标转 GCJ02 坐标)
java·前端·.netcore
Sapphire~4 小时前
Linux-07 ubuntu 的 chrome 启动不了
linux·chrome·ubuntu
去旅行、在路上4 小时前
chrome使用手机调试触屏web
前端·chrome
Aphasia3115 小时前
模式验证库——zod
前端·react.js