本文描述了 IBM® WebSphere® Application
Server for z/OS® 进程模型。其中详细描述了它与非 z/OS WebSphere
Application Server 进程模型之间的区别,以及如何自定义 WebSphere z/OS
进程模型才能最好地适合客户环境。
WebSphere Application Server for z/OS(以下称为 WebSphere
z/OS)包含一个 WebSphere Application Server 产品系列所特有的进程模型。此进程模型使
WebSphere Application Server(以下称为 Application Server)可以利用
z/OS 特有的许多服务,并在 z/OS 平台上提供客户期望的服务质量(Quality of Service,QoS)。本概述描述
z/OS 进程模型和其他 WebSphere Application 服务器平台之间的区别。同时介绍如何管理
WebSphere z/OS 进程模型。本文假设您对 z/OS 操作系统有一定的了解。
非 z/OS 平台(以下称为分布式平台)是在单一的进程模型上构建的。这意味着整个服务器在单一的 Java
虚拟机 (JVM) 进程上运行。然而,WebSphere z/OS 是使用多个 JVM 联合构建的,在不同的操作系统进程上执行的每个
JVM 代表一个服务器进程。
联合中的每个 JVM 都是不相同的,因为只有一个 JVM 会得到优先考虑并拥有服务器的外部端点。此 JVM
称为控制器(控制器区域)。其他 JVM 是 Servant(Servant 区域)或者 Adjunct(控制区域
Adjunct 进程)。Adjunct 进程是 Servant 进程的一个特例。客户安装的应用程序只在
Servant 区域中执行。平台消息传递组件驻留在 Adjunct 进程中。图 1 显示了一个示例服务器及其关联的
JVM。
图 1. WebSphere Application Server
for z/OS V6.0.1
在图 1 所示的模型中,除了版本 6 中的 JFAP 和 JCAI 外,所有入站和出站通信均发生在控制器进程中。因此,客户端请求首先到达控制器进程,然后在
z/OS Workload Manager (zWLM) 操作系统组件的帮助下发送到潜在的许多 Servant
进程之一。Servant 进程的数量是由 zWLM 动态管理的。Servant 进程是通过命令增减的,因安装时指定的性能目标而定。这些均通过一个
WLM 策略来表示。
此模型中的每个 Servant 进程都是相同的,它们托管启用 J2EE 应用程序编程模型所必需的应用服务器组件。从这个意义上,Servant
区域与整个分布式平台应用服务器紧密相关。Servant 进程的许多服务都依赖于控制区域,例如通信、安全性和事务控制。
版本 6.0.1 中新增的是 Adjunct 进程,它托管内部消息传递组件并处理 JFAP 和 JCAI
协议。NodeAgent、Proxy Server (v6.0.2) 和 JMSServer (v5.x)
没有 Servant 区域和 Adjunct 区域。它们只存在于控制区域中。在 z/OS 上提供独立的
Location Service Daemon (Daemon)。Daemon 提供 CORBA 位置服务来支持
Remote Method Invocation 和 Internet Inter-ORB Protocol
(RMI/IIOP)。
MVS 操作命令
WebSphere 允许您在服务器上执行四种不同的操作:Start、Stop、stopImmediate
和 Terminate。其中每个操作都可以通过管理控制台和 wsadmin 脚本来进行。Start 和
Stop 也有 Shell 脚本驱动接口。
WebSphere z/OS 支持第五种执行所有操作的方式——MVS 系统命令。z/OS 操作员可以在
MVS 控制台上发布命令来启动任何服务器。WebSphere 提供的方法实际上是对这些 MVS 系统命令的封装,因此
MVS 系统命令是启动、停止、立即停止或终止服务器的唯一方式。
START 命令剖析
图 2 显示了一个标准的 START 命令。在本例中,它是应用服务器的缺省 START 命令。
图 2. 应用服务器 START 命令
JCL Procedure
启动服务器的 JCL Procedure (PROC) 是在自定义时通过自定义对话框创建的。为每个区域(控制、Servant、Adjunct)和
Daemon 各创建一个。PROC 是通用的,因为它们可以启动给定节点的任何服务器。Deployment
Manager 生成自己的 PROC 集,而该节点使用基服务器的 PROC。您可以使用任意 8 个或 8
个以下字符来命名 PROC。缺省名称是 BBO6ACR。
JOBNAME
您可以使用 JOBNAME 来标识服务器。缺省情况下,WebSphere 使用该服务器短名称,除非它被更改。除了附加一个“S”外,Servant
区域的 JOB 名称与控制区域相同。类似地,Adjunct 区域则附加一个“A”。
Control Region Jobname: BBOS001
Servant Region Jobname: BBOS001S
Adjunct Region Jobname: BBOS001A |
ENV
ENV 是唯一标识服务器的字符串。该字符串由单元短名、节点短名和服务器短名组成。如果通过管理控制台来更改服务器短名,则相应的
ENV 参数也会更改。
START 示例命令
以下部分显示 WebSphere 服务器的 START 示例命令。
Deployment Manager:
START BBO6DCR,JOBNAME=BBODMGR,ENV=PLEX1.PLEX1.BBODMGR |
Deployment Manager 的 PROC 与其他任何服务器始终不同(前者是 BBO6DCR,而后者是
BBO6ACR)。Deployment Manager 的缺省 JOB 名称是 BBODMGR。因为 ND
单元中只有一个 Deployment Manager,所以在 JOBNAME 上没有附加数字。
节点代理:
START BBO6ACR,JOBNAME=BBON001,ENV=PLEX1.SY1.BBON001 |
缺省情况下,每个新创建的节点代理都将按顺序赋予下一个未使用的数字,例如从 BBON002、BBON003
到 BBONXXX。
应用服务器:
START BBO6ACR,JOBNAME=BBOS001,ENV=PLEX1.SY1.BBOS001 |
缺省情况下,每个新创建的应用服务器都将按顺序赋予下一个未使用的数字,例如从 BBOS002、BBOS003
到 BBOSXXX。
Proxy Server v6.0.2:
START BBO6ACR,JOBNAME=BBOX001,ENV=PLEX1.SY1.BBOX001 |
缺省情况下,每个新创建的代理服务器都将按顺序赋予下一个未使用的数字,例如从 BBOX002、BBOX003
到 BBOXXXX。
JMS Server v5.x:
START BBO6ACR,JOBNAME=BBOJ001,ENV=PLEX1.SY1.BBOJ001 |
缺省情况下,每个新创建的 JMS 服务器都将按顺序赋予下一个未使用的数字,例如从 BBOJ002、BBOJ003
到 BOJXXX。请注意,启动服务器只需要控制区域 START 命令。如果需要,控制区域会依次启动 Daemon、Servant
和 Adjunct。
STOP 示例命令
所有 WebSphere 服务器(Deployment Manager、NodeAgent、Application
Server、Proxy Server 和 JMSServer)都支持 STOP 命令。要发布该命令,请使用如下语法:
其中 STOP 或 P 为该命令,而 BBOS001 是控制区域 JOBNAME。
CANCEL 示例命令
z/OS 服务器上的立即停止功能映射为 CANCEL 命令。CANCEL 将立即停止一个启动的任务。
其中 CANCEL 或 C 为该取消命令,而 BBOS001 是控制区域的 JOB 名称。
TERMINATE
命令
TERMINATE 命令是停止一个正在运行的服务器的最后手段。在 WebSphere 分布式服务器上,Terminate
功能通过调用操作系统的 sigkill 来终止服务器。
在 z/OS 上,当 CANCEL 发布多次未成功之后将使用终止功能。当您对 z/OS 服务器发布 TERMINATE
时,将发布出两个命令。调用的第一个命令是 stopImmediate,而第二个是 TERMINATE 命令。这是在发布
FORCE 前的最后一次 CANCEL 的机会。请注意,发布 FORCE 命令可能需要您重新 IPL 系统。
TERMINATE 命令只从 NodeAgent 发布,这与 Stop 和 stopImmediate
均不同,它们是由目标服务器驱动的。因此,您不能够终止 Deployment Manager 或 Base
Application Server。您只能终止托管服务器,例如联合应用服务器、代理服务器和 JMS 服务器。
对于特定服务器,所有这些命令(START、STOP、stopImmediate、TERMINATE)都是在
server.xml 文件中定义的。您可以对其进行更改以适合您的特定环境。例如,如果您想要在用户单击管理控制台上的
Stop 时取消服务器,则可以重新定义 STOP 命令。
类似地,客户可能想要对其 stopImmediate (CANCEL) 命令附加参数以追加 ARMREST
参数。这将使通过脚本或管理控制台调用 STOP、stopImmediate 或 TERMINATE 时,WebSphere
能够准确调用适合客户环境的命令。当执行应用程序推出或 RippleStart 时,同样也会调用这些命令。
您可以在每个地址空间的进程定义面板上查看和修改定义的 START、stopImmediate 和 TERMINATE
命令。在控制区域内,您可以找到:
startCommand
START <PROC NAME>
startCommandArgs
JOBNAME=BBOS001,ENV=PLEX1.SY1.BBOS001
stopCommand
STOP BBOS001; CANCEL BBOS001
stopCommandArgs
<empty>
stopImmediate
STOP BBOS001; CANCEL BBOS001
terminateCommand
FORCE BBOS001
terminateCommandArgs
<empty> |
您可以更改这些命令中的任何一个。例如,如果您的特殊安装方式需要更短的 START 命令,或者您想要创建更容易记住的类似命令,在这里更改和保存新的
START 命令后,当您单击管理控制台上的 Start 或通过脚本启动服务器时,WebSphere 将会发布该命令。STOP
命令和 stopImmediate 命令存储在相同的 XML stanza 中。它们之间由分号隔开。图
3 显示控制器区域的进程定义面板。使用此管理控制台面板,您可以重新定义 START、STOP、 stopImmediate
和 TERMINATE 命令。
图 3. 管理控制台进程定义面板
本文介绍了 WebSphere z/OS 进程模型。该进程模型使得在 z/OS 环境中有更大的灵活性和集成度,并保持
z/OS 系统操作员所熟悉的服务器界面。本文还介绍了联合 JVM 模型的各个部分及使用的缺省命名模式。通过使用自定义进程模型的功能,您将能够使
WebSphere z/OS 与客户自己的环境及其公司内部策略更好地集成。
|