WebSphere Process Server V6.0.2 集群,第 2 部分:安装和配置 WebSphere Process Server 集群
2010-09-27 08:31:11 来源:WEB开发网引言
本系列的第一篇文章从理论的角度讨论了在构造 WebSphere Process Server V6.0.2 集群时需要记住的主要选项和各自的优缺点。本文所述内容实践性更强,将说明为 WebSphere Process Server 集群安装、配置和设置“黄金拓扑”的详细过程。
安装 WebSphere Process Server Version 6.0.2
对于此项目,我们在 ISSW1 和 ISSW2 系统上都安装了 WebSphere Process Server Version 6.0.2.0。Version 6.0.2 是 WebSphere Process Server 6.0.1 产品的更新版本,也打包为了完全可安装映像。WebSphere Process Server V6.0.2 的安装过程中也会安装作为其先决条件的软件 (WebSphere Application Server Network Deployment, V6.0.2.17)。
重要:在 Windows® 操作系统上,我们建议将安装目录从其缺省值:(C:Program FilesIBMWebSphereProcServer) 修改为与以下类似的较短值:WebSphereProcServer。由于 Windows 路径名的字符数限制,如果接受缺省值,可能会遇到问题。
我们选择了自定义安装路径,并选择了不安装示例:
图 1. 安装 WebSphere Process Server
安装完成后,我们选择不允许概要创建向导(将在后续步骤中手动运行此向导)。
重要:确保安装 IBM Software Support 网站所指定的强制修复程序。
应该认识到,安装 WebSphere Process Server 并非实现目标拓扑的唯一方法,还可以使用不同的产品组合来实现。事实上,务必注意,并不需要 WebSphere Process Server 代码来运行消息传递基础设施。您可以安装 WebSphere Application Server Network Deployment V6.0.2.17 进行消息传递,然后将所有此类节点联合到 WebSphere Process Server 计算单元。
还可以通过将现有 WebSphere Application Server 安装扩大为 WebSphere Process Server 来达到目的。如果选择采用这种方式,需要创建 WebSphere Application Server 概要,并在将其联合到 Deployment Manager 计算单元前对其进行扩大,因为不支持对已经联合的概要进行扩大。
为 WebSphere Process Server 创建数据库
对于 WebSphere Process Server,需要使用许多数据库表。您可以自由创建一个或多个数据库来承载包含这些表的多种模式。
但需要掌握创建许多单独的数据库和在单个数据库中创建所有模式和表之间的合理平衡。不建议采用后一种做法,因为将会无法对每个数据库进行单独调整。不过,在大型安装中,可能有多个独立环境(具有多个业务流程容器等)。如果选择为每个需要的组件创建单独的数据库,那么结果可能会产生数量极大的数据库。不过,如果希望在独立的集群中配置多个 BPC 实例,每个实例将需要具有自己的数据库。
一种常见的做法是为消息传递引擎、其他 WebSphere Process Server 组件(WebSphere Process Server 表和 BPC)及公共事件基础设施(Common Event Infrastructure,CEI)分别创建独立的数据库。
在消息传递引擎数据库中,可以随后创建不同的模式来支持不同的消息传递引擎。
BPC 并不提供显式模式支持。模式是通过隐含方式确定的,与在配置 BPC 时在身份验证别名中指定的用户 ID 一致。
通常情况下,您将需要在安装和配置 WebSphere Process Server 之前手动创建数据库。
对于数据库中的对象(如模式和表),共有两个选项:
可以让 WebSphere Process Server 管理功能为您自动创建对象。唯一例外的是 BPC 数据库,需要通过另外的步骤(稍后讨论)进行创建。这意味着您的数据库管理员同意负责配置 WebSphere Process Server 的人员创建数据库对象。在实际的生产环境中,很少出现这种情况。
可以让数据库管理员为您创建数据库、模式、表和其他对象。WebSphere Process Server 提供了一组脚本(还可以自己生成脚本),可以将这些脚本提供给数据库管理员使用。在本文中,我们采用的是混合方法。我们手动创建了一些模式,并让系统创建其他模式。不过,如果您希望完全采用手动方法,本文还说明了如何获取执行创建任务的脚本。
WebSphere Process Server 需要下面的模式:
用于 WebSphere Process Server 存储库的模式。此数据库的缺省名称为 WPRCSDB。这里,我们新建一个空的 DB2® 数据库 (ISSWWPS),然后让概要向导在其中为我们创建模式和表。在创建 Deployment Manager 概要时将创建表(将在下文阐述)。
还可以在此时创建 ESB Mediation Log 数据库表。相应的脚本位于以下位置:
<WPS INSTALL DIRECTORY>utilEsbLoggerMediation
用于业务流程容器和人工任务容器的模式。必须手动创建此模式(通过执行数据库脚本,或通过使用 bpeconfig.jacl 命令)。用于创建 BPC 数据库的脚本位于以下位置:
WebSphereProcServerdbscriptsProcessChoreographer
在我们的示例中,我们创建了名为 BPEDB 的新数据库,并使用 createDatabseDb2.sql 脚本创建了表。对于生产级配置,我们建议使用信息中心中所指定的两个脚本 createTablespaces.sql 和 createSchema.sql。除了模式和表之外,这两个脚本还负责创建一组表空间。
我们编辑了 SQL 脚本文件,并更改了前两个 SQL 语句,以指示希望使用的数据库名称:
-- create the database
CREATE DATABASE BPEDB USING CODESET UTF-8 TERRITORY en-us;
-- Use CONNECT TO BPEDB USER xxx when another user should become owner of the schema
CONNECT TO BPEDB USER MICHELE USING PASSWORD;
在我们的场景中,创建了一个数据库和四个模式(每个消息传递引擎一个)。要手动更改模式名称,可以编辑之前步骤中获取的 ME.ddl 文件。
WebSphere Process Server 还可能需要一个公共事件基础设施数据库。不过,在创建概要之前,此数据库的脚本不可用。我们将此数据库的创建工作推迟到了讨论 CEI 配置的部分中。
总的说来,这些就是我们在开始创建概要前要创建的数据库和模式(请参见表 2):
表 2. 开始创建概要前要创建的数据库、模式及其功能
数据库 | 模式 | 功能 |
ISSWWPS | 此时没有。由概要创建向导创建模式和表。此外,还可以为 ESB Log Mediation 数据库手动创建表。 | 此为 WebSphere Process Server 存储库。 |
BPEDB | 与连接数据库所使用的用户 ID 相同。 | 保存 Business Flow Manager 和 Human Task Manager 信息。 |
MEDB | 每个消息传递引擎一个: BPEME,用于编排器 CEIME,用于公共事件基础设施 SCAAPP,用于 SCA 应用程序消息传递引擎 SCASYS,用于 SCA 系统消息传递引擎 | 保存消息传递引擎的持久信息。 |
EVENT | 与连接数据库所使用的用户 ID 相同。 | 使用脚本创建的 CEI 应用程序数据库。 |
创建 Deployment Manager 概要
应该创建的第一个概要是 WebSphere Process Server Deployment Manager 概要。
从以下目录启动概要创建向导:
C:WebSphereProcServerbinProfileCreator_wbi。
确保选择了此目录,而不是 ProfileCreator 目录,否则将会创建基本 WebSphere Application Server Deployment Manager 概要。
在 Profile type selection 中选择 Deployment Manager profile:
图 2. 创建 Deployment Manager 概要
单击 Next。为概要命名(例如,ISSWDmgr),请参见图 3:
图 3. 命名 Deployment Manager 概要
单击 Next。选择概要目录(我们保留了缺省值):
图 4. 指定 Deployment Manager 目录
单击 Next。指定主机、节点和计算单元名称(我们保留了缺省值),如图 5 中所示:
图 5. 指定节点、主机和计算单元名称
单击 Next。下一步骤非常重要:它将询问 SCA 基础设施将用于连接到系统和应用程序 SI Bus的用户和密码(记住将不会在此时创建 SI Bus。我们将在稍后创建时进行讨论),请参见图 6:
图 6. 为 SCA SI Bus 指定安全凭据
重要:在对话框中指定的用户和密码需要为有效的 WebSphere Application Server 用户和密码。这些凭据通常完全独立于连接各种数据库所需指定的凭据。在本文中,我们假定对于 SI Bus 和关系数据库使用了相同的凭据。
单击 Next。现在,将询问您是需要创建新数据库,还是使用现有数据库。由于我们已经创建了一个空数据库,因此选择 Use an existing database。还需要注意的一个重要事项是,只有在数据库为本地数据库时才允许自动创建数据库。
该向导的智能设计足以识别数据库为空数据库的情况,并在需要时创建模式。如果数据库已经包含模式,则向导将跳过创建步骤,请参见图 7。
图 7. 为 WebSphere Process Server 选择数据库
单击 Next。查看摘要,然后单击 Finish:
图 8. 检查 Deployment Manager 创建选项
在创建概要之后,您需要检查是否还创建了模式和表。我们的检查方法是,通过连接到数据库服务器,并验证 ISSWWPS 数据库中是否存在以下各表,请参见图 9:
图 9. 为 Deployment Manager 创建的表
通过使用此脚本也可以做到这一点:
db2cmd
db2 connect to ISSWWPS user <...> using <...>
db2 list tables for schema <user name>
提示:还可以使用脚本来填充数据库。这些脚本在以下目录中提供:WebSphereProcServerdbscriptscommonDB
验证 J2C 身份验证别名是否存在。数据源和连接工厂中将使用这些 J2C 身份验证别名。
导航到 Security => Global security => JAAS Configuration => J2C authentication data entries。
您应该具有 SCA_Auth_Alias(在连接消息传递引擎时使用)和 WPSDBAlias(用于 WebSphere Process Server 数据库)。
图 10. 为 Deployment Manager 概要创建的身份验证别名
创建 WebSphere Process Server 自定义概要
我们已经得到了一个 Deployment Manager 概要,因此接下来可以为托管节点创建概要。
让我们从 WebSphere Process Server 节点开始。在您的拓朴中,可能将多个节点分别驻留在不同的计算机上。在我们的场景中,WebSphere Process Server 只有一个节点,还有一个节点用于消息传递引擎,但在概念上,这些步骤也适用于较大的配置。
运行 WebSphere Process Server 概要创建向导,如图 11 中所示:
和处理 Deployment Manager 时一样,从目录 C:WebSphereProcServerbinProfileCreator_wbi 启动概要创建向导 pcatWindows.exe。
这次选择 Custom Profile,如图 11 中所示:
图 11. 创建自定义 WebSphere Process Server 概要
单击 Next。选择以后将此概要联合到计算单元:
图 12:用于自定义 WebSphere Process Server 概要的选项
重要:如果选择立即联合节点,Deployment Manager 进程必须启动并运行。
单击 Next。为此概要命名,并使其成为缺省值:
图 13:命名自定义 WebSphere Process Server 概要
单击 Next。选择安装目录。
单击 Next。在系统名称中选择节点名称和类型(大部分时间可以使用缺省值)。我们使用 ISSW1Node 作为节点名称。
单击 Next。选择数据库类型和驱动程序位置。对于 DB2,驱动程序随产品一起提供,通常不需要更改。
图 14:为自定义 WebSphere Process Server 概要选择数据库选项
查看摘要,然后单击 Finish 完成概要的创建。
不执行其他操作,直接退出向导。
创建 WebSphere Application Server 自定义概要
在我们拓朴中,存在单个用于消息传递的 WebSphere Application Server 节点(系统 ISSW2)。
在该节点上,我们需要创建基本 WebSphere Application Server 概要。在创建 WebSphere Process Server 概要时,仅运行消息传递基础结构没有什么作用。
运行 WebSphere Application Server 概要创建器(不是 WebSphere Process Server),请参见图 15:
启动位于以下位置的概要创建向导:
C:WebSphereProcServerbinProfileCreator。请注意,此位置与我们创建 WebSphere Process Server 概要所使用的位置不同。
选择 Custom Profile:(将该屏幕与 WebSphere Process Server 的屏幕相比较,可以看出概要类型的显示顺序不同。)
图 15. 创建普通 WebSphere Application Server 概要
单击 Next 并选择以后对概要进行联合(如果希望立即对概要进行联合,则需要运行 Deployment Manager):
图 16. 用于 WebSphere Application Server 概要的选项
单击 Next 并对概要进行命名。我们使用的是 ISSWWAS。
单击 Next 并验证(或更改)主机名和节点名。在我们的场景中,节点名设置为 ISSW2Node。
单击 Next,检查摘要,然后单击 Finish 完成创建。
不执行其他操作,直接退出向导。
向 Deployment Manager 添加节点
接下来我们将使用 addNode 命令将节点联合到计算单元中。
启动 Deployment Manager。
在创建 Deployment Manager 概要的系统上 (ISSW1),从 WebSphereProcServerproflesISSWDmgrbin 运行 startManager 命令。
在 Deployment Manager 启动并运行之后,在同一 Deployment Manager 系统 (ISSW) 上,向计算单元添加 WebSphere Process Server 节点:
将目录更改为:
WebSphereProcServerprofilesISSW01bin
使用 addNode 命令来将节点联合到 Deployment Manager。此命令接受 Deployment Manager 系统的主机名(或 IP 地址)作为参数,而且在修改了缺省值(缺省端口为 8879)或在相同物理系统上创建了多个 Deployment Manager 概要的情况下,可以将 Deployment Manager 的 SOAP 连接器的端口号作为可选参数。在我们的示例中,执行了以下命令:
addNode issw.rchland.ibm.com
等待运行完成。此时还将启动节点代理。
重要:在需要添加多个节点时,请确保一次添加一个节点。等待每个 addNode 命令完成,然后再发出后续 addNode 命令。
现在切换至创建 WebSphere Application Server 概要的系统 (ISSW2) 并联合该节点:
将目录更改为:WebSphereProcServerprofilesISSWWASbin
运行: addNode issw.rchland.ibm.com
等待运行完成。此时还将启动节点代理。
启动管理控制台,并验证两个节点已经联合。
导航到 System administration => Nodes。应该看到两个节点,如下图中所示。图 17:节点列表。
图 17. 节点列表
为消息传递引擎创建集群
为消息传递引擎创建 WebSphere Application Server 集群。此集群不需要 WebSphere Process Server 功能,因为它只运行消息传递基础结构。
导航到 Servers => Clusters。单击 New。命名集群 (MECluster),如图 18 中所示: 图 18:配置用于进行消息传递的集群
单击 Next。创建初始集群成员。对其命名 (MEMbr01),并选择要让成员驻留的节点。将服务器模板保留为缺省值。通过使用缺省模板,可以创建一个“普通”的WebSphere Application Server 服务器,而不是支持 WPS 的服务器: 图 19. 选择正确的服务器模板 (006.bmp)
可以现在或稍后创建更多的成员。我们建议开始时只创建一个成员,以后再通过添加成员恰当地扩大集群。
单击 Next。查看摘要并完成创建过程。
对于 DB2,更新 DB2 驱动程序环境变量。一般情况下,最好在节点级别创建这些变量,因为这样可以独立自定义每个节点。在我们的场景中,所使用的系统在磁盘驱动器、目录结构、数据库驱动程序位置等方面都是完全相同的。因此,我们可以在计算单元级别定义这些变量,这样,计算单元中的每个部分都将继承这些定义。
图 20. 为数据源定义 WebSphere 变量
重要:如果您在计算单元级别定义变量,则请确保不在节点和服务器级别定义同一变量。较低级别的定义会覆盖单元级别的定义。
ME 集群的业务集成配置。我们将使用 Business Integration Configuration wizard,这是 WebSphere Process Server V6.0.2 中推出的新功能。此功能可简化集群的配置工作。
在 Server => Cluster 菜单下选择 ME Cluster。
单击 Business Integration Configuration link(位于图 21 所示的右侧列表中)。
图 21. Business Integration Wizard(V6.0.2 中的新功能)
将看到图 22 中所示的对话框: 图 22. 用于 ME 集群的 Business Integration Wizard,屏幕截图 1
在此对话框上,选择 Setup SCA Destination 下的 Local。此步骤将在 ME 集群上设置 SCA 总线。安装其他应用程序(应该不能选择 Business Rules Manager、Business Processes 和 Human Task,因为这是一个纯 WebSphere Application Server 集群)。
单击 Next。将看到以下屏幕显示(请参见图 23)。 图 23. 用于 ME 集群的 Business Integration Wizard,屏幕截图 2 (007.bmp)
选择 XA JDBC Driver provider 并输入恰当的用户名和密码。单击 Next。
将随即显示图 24 中的对话框。可以在其中为消息传递引擎数据存储区指定数据源和数据库信息。请注意,我们选择了“Create Tables”,如果您使用的是按照本文档的前面所述的方法创建的数据库,请将这些复选框设置为未选中状态。 图 24. 用于 ME 集群的 Business Integration Wizard,屏幕截图 3 (008.bmp)
请注意,我们设置了数据库名称 (MEDB) 和模式(SCASYS 与 SCAAPP)。单击 Finish,保存您的工作。
使用 ME 集群的 Business Integration Wizard 创建的构件
我们希望讨论一下在用于 ME 集群的 Business Integration wizard 执行期间创建的构件。
导航到 Service Integration =>Buses。应该看到下面图 25 中所示的总线。
图 25. SCA SI Bus
与 WebSphere Process Server V6.0.1 中不一样,SCA SI Bus(System 和应用程序总线)仅在 Business Integration wizard 执行之后才会创建。
验证每个总线有一个且只有一个总线成员,如下所示。
图 26. SCA SI Bus 成员
导航到 Service Integration => Buses => SCA.APPLICATION.isswCell01.Bus. => Messaging Engines => MECluster.000-SCA.APPLICATION.isswCell01.Bus => Data Store。应该看到下面的屏幕显示。
图 27. SCA SI Bus 数据存储区
上面的屏幕截图显示了数据源的 JNDI 名称。
验证数据源已创建,且能够对其进行测试。要验证数据源,请导航到 Resources => JDBC Providers => Apply ME Cluster Scope。应该看到使用 Business Integration wizard 创建的数据源。为了测试数据源,对应节点代理需要启动并运行。使用向导创建的数据源如以下所示。
图 28. SCI 总线数据源
启动集群,以确保消息传递引擎正常工作(它们应该为“started”状态,另外要检查 SystemOut.log 中有关集群中的服务器的信息)。
提示:如果需要重新创建总线,请确保取消并重新创建模式,否则在启动消息传递引擎时会遇到困难,原因是数据库模式本身存在现有数据。
创建 WebSphere Process Server 集群
现在消息传递的基础结构已经准备就绪,接下来就能够创建可以安装 WebSphere Process Server 应用程序的 WebSphere Process Server 集群了。
创建集群。
导航到 Servers => Clusters 并单击 New。
图 29. 创建 WebSphere Process Server 集群
创建一个 defaultProcessServer 类型的成员 (WPSMbr01)(确保更改了缺省值,否则将创建不支持 WebSphere Process Server 应用程序的集群)。另外,还要确保选择安装了 WebSphere Process Server 的节点。在我们的场景中,我们仅在节点 ISSW1Node 上创建了 WebSphere Process Server 概要。
图 30. 创建 WebSphere Process Server 集群
单击 Apply,以确认创建 WebSphere Process Server 集群成员。
单击 Next。
查看摘要,并单击 Finish 来完成集群的创建。
WPS 集群的业务集成配置。同样,我们要使用 WebSphere Process Server 6.0.2 提供的新 Business Integration Configuration wizard,以简化 BPC 和人工任务应用程序的创建和配置。
要执行此向导,请在 Server => Cluster 菜单下选择 WPS Cluster。
单击 Business Integration Configuration link(位于 Additional Properties 下的链接列表中)。将看到图 31 中所示的对话框。
图 31. 用于 WPS 集群的 Business Integration Wizard,屏幕截图 1
正如上图所示,应该为 SCA Destination 选择 Remote,因为 WPS Cluster 使用我们已在 ME 集群上创建的 SCA SI Bus。我们在此处选择了配置 Business Rules Manager、Business Process Container 和 Human Task Container。
单击 Next。将看到第二个对话框,如图 32 中所示。
选择希望使用的数据库驱动程序,并为数据库指定用户和密码。
图 32. 用于 WPS 集群的 Business Integration Wizard,屏幕截图 2 (007.bmp)
单击 Next。将看到图 33 中所示的对话框。
如屏幕截图中所示,选择 Use a remote destination location。作为 WebSphere Process Server 集群一部分的应用程序配置为使用属于已经安装的 ME 集群的远程 SCA 目的地。
图 33. 用于 WPS 集群的 Business Integration Wizard,屏幕截图 3
单击 Next。下一个屏幕(图 34)允许您选择 CEI 发射器工厂的 JNDI 名称。请记住,此步骤并不配置 CEI Event Server。只是将发射器工厂的名称告知 WPS 集群而已。我们此处保留了缺省值。 图 34. 用于 WPS 集群的 Business Integration Wizard,屏幕截图 3
单击 Next。将 Install business rules manager 复选框保持选中状态,如图 35 中所示。
图 35. 用于 WPS 集群的 Business Integration Wizard,屏幕截图 5
单击 Next。将看到图 36 中所示的对话框。可通过此对话框配置 BPC Explorer。请注意,通过在业务流程容器安装向导(我们在 V6.0.1 中提供的“传统向导”,在本版本中仍然完全可用)中选中 Config,可以跳过此对话框。我们决定要使用新对话框。
图 36. 用于 WPS 集群的 Business Integration Wizard,屏幕截图 6 (011.bmp)
在上一个屏幕中,我们选择了数据库驱动程序并指定了数据源用户和密码。这些参数将用于配置 BPE DB 数据源。
我们还指定了 JMS 用户 ID 和密码,用于配置与 Business Process Choreographer 关联的 JMS 连接工厂(BPECF、BPECFC 和 HTMCF)。
此外,还指定了 JMS API 用户 ID 和命名,用于配置与业务流程容器关联的 MDB 的 RunAs 参数(此处最好使用有效的 WebSphere Process Server 用户,可以具有管理员权限)。
我们选择安装 BPC Explorer(Web 客户机)并为流程启用 CEI 日志记录功能。
我们还设置了 Administrator and Monitor 用户组映射(必须映射到有效的 WebSphere Process Server 用户组,为了能安全地使用,此用户组必须存在于用户注册中心中)。
请注意,此对话框并不会要求提供 BPE DB 名称,我们将稍后设置此值。
单击 Next。将看到允许您设置人工任务容器的对话框(图 37)。
图 37. 用于 WPS 集群的 Business Integration Wizard,屏幕截图 7 (012.bmp)
同样请注意,仍然可以使用传统向导进行此工作。我们使用了新向导,并指定 JMS 用户 ID/密码、升级用户 ID/密码和 Administrator/Monitor 角色映射(映射到有效的 WebSphere Process Server 用户组,为了能安全地使用,此用户组必须存在于用户注册中心中)。
单击 Next。
在摘要屏幕(图 38)上,复查信息并单击 Finish。
图 38. 用于 WPS 集群的 Business Integration Wizard,屏幕截图 8 (013.bmp)
应该在控制台中看到一条消息,指示已成功完成。
成功完成 WPS 集群的 Business Integration Wizard 后已安装的应用程序
本部分讨论在用于 WebSphere Process Server 集群的 Business Integration wizard 的执行期间创建的构件。选择 Applications => Enterprise Applications,其中应该指示 BPC Explorer、Business Process Container、BR Manager 和 Human Task Container 已全部安装。
图 39. Business Integration wizard 完成后已安装的应用程序
WebSphere Process Server 集群所需的手动更改
Business Integration wizard 的当前版本并不会在各个地方提示输入数据库名称或模式。有三个资源需要进行手动更改,将在下面对这些更改进行讨论。
BPE DB 数据源中的更改。
需要修改的第一个数据源是 Business Process Choreographer 的数据源。
导航到 Resources => Data Providers => Apply WPS cluster Scope。
导航到 DB2 Universal JDBC Driver Provider (XA) => Data sources。
应该看到 Business Process Choreographer 的数据源,如下所示。 图 40. BPE 数据源
单击数据源。会显示包含详细信息的以下屏幕: 图 41. 配置 BPE 数据源
向下滚动到可以看到数据库名称的部分: 图 42. 配置 BPE 数据源
如果所使用的数据库名称不是 BPEDB,则需要进行相应的更改。
在进行了更改后,请确保保存工作。
SI Bus 数据源配置
导航到 Resources => Data Providers => Apply Cell Scope。
导航到 DB2 Universal JDBC Driver Provider (XA) => Data Sources。
应该看到 BPC SI Bus 数据源,如下所示。 图 43. BPC SI Bus JDBC 资源
单击 BPC SI Bus 数据源,以对其进行编辑,如下所示。 图 44. BPC SI Bus 数据源
在此页上,向下滚动,以突出显示 DB2 Universal database properties(图 45)。请注意,向导假定消息传递引擎模式位于与 Business Process Choreographer 模式相同的数据库中。我们决定转而将所有消息传递引擎模式都放置在相同的数据库中 (MEDB)。按照图 46 中所示进行相应的修改。 图 45. 缺省 BPC 消息传递引擎数据源
图 46. BPC SI Bus 数据源
SI Bus 数据库的缺省值为 BPEDB。对其进行相应的修改,以适应您的环境。保存工作。
BPC SI Bus 数据存储区配置
所需的最后一个修改是配置与 BPC SI Bus 关联的数据存储区。
导航到 Service Integration => Buses => BPC.isswCell01.Bus。应该看到以下屏幕显示。 图 47. BPC SI Bus 数据存储区
单击总线,以突出显示详细信息。单击 Messaging Engines,然后单击消息传递引擎名称(通常情况下,此名称为 <Cluster Name>.000-<Bus Name>)。
单击 Data Store 链接(图 48)。 图 48. 配置 BPC SI Bus 数据源
请注意,模式名称与缺省模式名称 (IBMWSSIB) 对应。将其更改为所需的模式名称(在我们的示例中为 MEDB),并分配用于数据库身份验证的恰当身份验证别名。
保存工作。手动更改工作到此结束。
创建 CEI 集群
现在我们可以在 CEI 集群上配置和安装公共事件基础设施了。在黄金拓扑中,CEI 在独立的集群中配置。在白银拓扑中,CEI 作为 WPS 集群的一部分配置。
创建集群。
导航到 Servers => Clusters 并单击 New。按照下面所示创建 CEI 集群。
图 49. 创建 CEI 集群
创建一个 defaultProcessServer 类型的成员(确保更改了缺省值——否则将创建不支持 WebSphere Process Server 应用程序的集群)。另外,还要确保选择安装了 WebSphere Process Server 的节点。在我们的场景中,我们仅在节点 issw2Node01 上创建了 WebSphere Process Server 概要。 图 50. 向 CEI 集群添加成员
安装 CEI 应用程序
创建公共事件基础设施数据库。为此,我们需要生成一些脚本并执行。
a. 打开命令提示符,并将当前目录更改为 <WPS_INSTALL_ROOT>profiles<CEI Profile directory>eventdbconfig。
其中包含很多脚本——由于我们使用的是 DB2,因此将使用其对应的脚本。制作 DB2ResponseFile.txt 文件的副本。使用文本编辑器打开此文件,以按照下面所指示的进行一些更改。
进行以下更改(根据 DB2 的配置情况不同,可能要对驱动程序位置、类型和 DB 实例端口使用不同的值):
CLUSTER_NAME=CEICluster
SCOPE=cluster
DB_NAME=EVENT
DB_NODE_NAME=<your remote DB node name>
JDBC_CLASSPATH="<WPS_INSTALL_ROOT>universalDriver_wbilib"
UNIVERSAL_JDBC_CLASSPATH="<WPS_INSTALL_ROOT>universalDriver_wbilib"
JDBC_DRIVER_TYPE=4
DB_HOST_NAME=<your DB host name>
DB_INSTANCE_PORT=50000
EXECUTE_SCRIPTS=NO
保存更改。
运行以下命令:
config_event_database.bat DB2ResponseFile.txt
前面的命令将创建一组脚本,以便在下列目录中创建 CEI 数据库:<WPS_INSTALL_ROOT>profiles<WPS profile directory>eventdbscriptsdb2。使该目录成为当前目录。
为了在远程系统上创建 CEI 数据库,请运行以下命令:
cr_event_db2.bat client <user> <password>
成功创建数据库后,请将目录更改到 WPS_INSTALL_ROOT>profiles<WPS profile directory>eventdsscriptsdb2。将在此处找到用于配置 CEI 所需的数据源的脚本。
运行以下命令,以在集群上创建数据源(请首先确保 Deployment Manager 已启动并运行):
cr_db2_jdbc_provider cluster CEICluster
当系统提示时,提供数据库用户 ID 和密码,并让脚本完成。
验证该命令是否创建了 JDBC 提供程序和数据源。
打开管理控制台。
导航到 Resources => JDBC Providers,并将范围设置为集群级别。应该看到名为“Event DB2 JDBC Provider”的 JDBC 提供程序: 图 51. 为 CEI 定义的 JDBC 提供程序
单击该提供程序,然后单击 Data Sources。
应该看到两个数据源: 图 52. 为 CEI 创建的数据源
现在我们已经准备好安装 CEI 应用程序。要安装两个 CEI 应用程序,一个实现 CEI 引擎,另一个允许以异步方式发出 CEI 事件。
让我们首先安装 CEI 引擎。使 <WPS_INSTALL_ROOT>profiles<WPS Profile>eventapplication 成为当前目录。
在一行上发布以下命令(此命令适用于 DB2 V8.2,并假设您的 WPS 集群名为 WPSCluster):....binwsadmin p profile event-profile.jacl -f
event-application.jacl -action install
-earfile event-application.ear
-backendid DB2UDBNT_V82_1 -cluster CEICluster
现在,让我们安装用于进行异步发布的 CEI 消息应用程序。在同一目录中,发布以下命令(在一行上):....binwsadmin -profile event-profile.jacl -f
default-event-message.jacl -action install
-earfile event-message.ear -cluster CEICluster
我们发出的这两个命令不仅可以安装应用程序,而且还可以为 CEI 创建一些资源定义。在集群环境中,您需要修改其中一些定义。
打开控制台,并导航到 Service Integration => Buses。请注意,已经创建了一个名为 CommonEventInfrastructure_Bus 的新总线: 图 53. 为 CEI 创建的 SI Bus
单击该总线。在后续屏幕上,单击 Bus Members。您将看到,CEICluster 已作为总线成员添加,而这并不是我们想要的结果,因为我们已经定义了一个独立的集群来承载消息传递引擎:
选择总线成员,并单击 Remove。
随后,单击 Add,并将 MECluster 添加到总线。将数据源 JNDI 名称指定为 jdbc/MEDataSource(像以前我们对其他总线的操作一样)。
图 54. 将正确的集群设置为 CEI SI Bus 的成员
单击 Next,然后单击 Finish。
再次单击 CommonEventInfrastructure_Bus,并单击 Messaging Engines。
单击 MECluster.000-CommonEventInfrastructure_Bus,并单击 Data Store。
将模式指定为 MECEI,选择 WPSDBAlias 作为身份验证别名,并取消选中 Create Tables: 图 55. 为 CEI 消息传递引擎设置正确的数据库模式
单击 OK 并保存更改。
您现在需要在总线上为 CEI 创建两个物理目的地。
选择 Service Integration => Buses,并单击 CommonEventInfrastructure_Bus。
单击 Destinations。
单击 New ,并选择 Queue。单击 Next。
键入 CommonEventInfrastructureQueueDestination 作为标识符。单击 Next。
确保将总线成员设置为 MECluster。
单击 Next,然后单击 Finish。
再次单击 New,这次选择 Topic space。
键入 CommonEventInfrastructure_AllEventsTopic 作为标识符。单击 Next。
单击 Next 和 Finish。
保存配置更改。
CEI 应用程序现在已经属于独立集群的一部分。因此,必须修改缺省 CEI 总线传输概要,以包含此更改。
导航到 Resources => Common Event Infrastructure Provider => Apply Cell Scope。
单击事件总线传输概要。单击缺省公共事件基础设施事件总线传输。 图 56. 事件总线传输概要
对于缺省事件总线传输概要,请确保事件总线 JNDI 名称为完全限定名称,即:cell/clusters/CEICluster/ejb/com/ibm/events/bus/EventBus。 图 57. 修改事件总线传输概要
重新循环集群,使它们选择新的更改。
停止 WPSCluster、CEICluster 和 MECluster。
启动 MECluster。
启动 WPSCluster。
启动 CEICluster。
通过检查所有集群成员的 SystemOut.log 文件确保干净地启动应用服务器。
验证集群功能和增长集群
我们建议您首先创建具有单个集群成员的集群。这样,在绑定集群时您能够更方便地测试配置。
对配置满意后,便可以将新成员添加到集群。
要测试配置,您可能需要一个简单的测试应用程序,并且该程序包括一些 SCA 功能和员工的长期运行业务流程,以便您可以测试我们配置和安装的大多数组件。
在继续进行应用程序安装和测试之前,请按以下步骤操作:
验证 Business Process Choreographer 的数据源创建:
转到 Resources => JMS Providers。
将范围设置为 WPSCluster 的集群级别。
单击 DB2 Universal JDBC Driver Provider (XA)。
单击 Data sources。
验证 Business Process Choreographer 的 JMS 资源创建:
转到 Resources => JMS Provider 并选择 Default Messaging。
将范围设置为 WPSCluster 的集群级别。
单击 JMS Connection Factory。验证已经配置了以下连接工厂:
BPECF
BPECFC
HTMCF
单击 Cancel。现在单击 JMS Queue Destinations。应该看到以下队列:
BPEApiQueue_WPSCluster(JNDI 名称:jms/BPEApiQueue)
BPEHldQueue_WPSCluster (JNDI 名称:jms/BPEHldQueue)
BPEIntQueue_WPSCluster (JNDI 名称:jms/BPEIntQueue)
BPERetQueue_WPSCluster (JNDI 名称:jms/BPERetQueue)
HTMHldQueue_WPSCluster (JNDI 名称:jms/HTMHldQueue)
HTMIntQueue_WPSCluster (JNDI 名称:jms/HTMIntQueue)
启动消息传递集群,并随后启动 WPS 集群。
通过检查每个成员的 SystemOut.log,验证每个集群是否正常启动。
验证 Business Process Explorer 应用程序是否正常工作。
可以通过以下 URL 访问应用程序:
http://<WPS Cluster hostname>:<port number>/bpc
例如,如果您在本地计算机上进行测试,且为 WPS 集群成员使用缺省 HTTP 传输,则您可以尝试:
http://localhost:9080/bpc
如果传输不是缺省传输(例如,WPS 集群成员的 Web 容器在端口 9081 上工作),则需要使用该端口将虚拟主机添加到计算单元。
打开控制台,并导航到 Environment => Virtual Hosts。
单击 default_host,然后单击 Host Aliases。
验证端口 9081 处存在入口
安装并测试应用程序。
验证 BPC Explorer 正常工作后,便可以安装和运行您准备的测试应用程序。您可以使用 BPC Explorer 启动这些应用程序中的任何业务流程或人工任务。
集群增长。要增长集群,请进行以下步骤:
使用控制台导航到 Servers => Clusters,并单击要增长的集群的名称(例如,MECluster)。
单击 Cluster Members,然后单击 New。
指定成员名称,并选择承载新集群成员的节点。
如果要添加更多成员,则请单击 Apply。最后,单击 Next。
查看摘要,并单击 Finish。
对 WPS 集群重复这些步骤。
添加与其他集群成员对应的虚拟主机(每个集群成员将在自已的端口上侦听 HTTP 和 HTTPs。您需要添加虚拟主机定义,以匹配这些端口。)
重新启动集群。
通过检查每个服务器的 SystemOut.log,确保每个集群成员正确启动。
在最后配置上测试应用程序。
启动并运行最后的配置后,您可以执行一系列测试,以确保应用程序在每个集群成员上运行。
第一个非常简单的测试是要确保 BPC Explorer 在每个成员上运行。
随后,您可以运行长时间运行的 BPEL 流程,并验证它是否正确执行。如果该流程由大量的活动组成,您应验证这些活动是否可以在不同的集群成员上执行。
测试故障转移也非常重要。您可以确保在从中启动长时间运行流程的服务器突然停止时,长时间运行的流程继续运行——并且可以验证短时间运行流程的故障转移行为。
更复杂的拓扑
本文中构建的拓扑是 WebSphere Process Server 集群拓扑的一个重要示例。
不过,您需要记住,可以使用很多变体来应用于更大的环境中。
有关这些高级拓扑的一般性讨论,我们建议您参考以下文章:
WebSphere Process Server 和 WebSphere Enterprise Service Bus 部署模式,第 1 部分:选择部署模式。
WebSphere Process Server 和 WebSphere Enterprise Service Bus 部署模式,第 2 部分:我的第一个 WebSphere Process Server 集群。
分区目的地
我们已经在“WebSphere Process Server 集群的关键拓朴”部分讨论了此选项。
通过对目的地分区,可以在同一时间为 SCA、BPC 和 CEI 活动提供消息传递引擎的多个实例。正如我们提到的,此选项是提高消息传递引擎可伸缩性的一个方法。
通常我们建议您避免使用此方法,因为它会带来很大的局限性。Charlie Redlin 的文章“WebSphere Process Server 和 WebSphere Enterprise Service Bus 部署模式,第 1 部分:选择部署模式”详细讨论了这些限制(请参见“参考资料”部分)。以下我们将对此进行简要的总结:
不能保证分区之间的真正平衡。因此,您最后得到的可能是使用率过低或过高的分区。
有状态应用程序依赖于连接到特定的分区。例如,使用 JMS 来执行同步请求/响应操作的 SCA 应用程序预期从特定分区得到响应。如果将响应交付到其他分区,将无法正确对其进行处理。
对于包括分区目的地的某些配置而言,搁置(或孤立)消息也是一个问题。在集群成员失败,消息传递引擎故障转移到另一个集群成员时,会出现这种问题。在某些情况下,不存在准备处理来自故障转移消息传递引擎的任何消息驱动 Bean,并且不会处理受影响分区上的任何消息。
排序也是分区目的地的已知问题。不能保证按消息发送到目的地的顺序处理消息。对于某些应用程序,这可能是一个大问题。
将“管理应用程序”与 SCA、BPEL 和 HTM 应用程序分开
WebSphere Process Server 包括大量的“辅助”应用程序,可帮助对 WebSphere Process Server 应用程序进行管理和故障排除。
这些应用程序为(管理控制台除外,它不是特定于 WebSphere Process Server 的):
Failed Event Manager
Relationship Manager
Common Base Event Browser
Business Rules Manager
Business Process Observer
Business Process Choreographer Explorer
此列表中的前三个应用程序由 Deployment Manager 托管。提高它们的可用性意味着提高 Deployment Manager 的可用性。这可以使用已知的方法实现,如在自已的系统上放置 Deployment Manager 和使用操作系统故障转移机制(例如,用于 AIX 的 HACMP)来保护系统。
还可以在不同的服务器或集群中安装 Business Rule Manager、Business Process Observer 和 Business Process Choreographer Explorer,以提高整体解决方案的可伸缩性。
结束语
WebSphere Process Server 为客户构建可伸缩且具有高可用性的应用程序环境提供了坚实基础。客户和专业人员可以通过学习本文来开始学习如何设置 WebSphere Process Server 基础集群安装。
本文给出了有关如何设置相当简单而且可靠的集群拓扑的详细步骤。不过,您必须知道,可能有各种用于 WebSphere Process Server 的拓朴解决方案,以确保有不同级别的可伸缩性和可用性。
- ››WebSphere Application Server 7.0 XML Feature P...
- ››WebSphere 反向投资者: 解决 WebSphere Applicati...
- ››WebSphere sMash 的创新应用,第 2 部分: 借助包装...
- ››Websphere MQ v6集群的负载均衡新功能
- ››WebSphere Process Server V6.0.2 集群,第 2 部分...
- ››WebSphere Process Server V6.0.2 集群,第 1 部分...
- ››WebSphere MQ性能调优浅谈
- ››WebSphere配置资源库管理
- ››WebSphere中的SSL/TLS:用法、配置和性能
- ››websphere ejb远程/本地调用总结
- ››WebSphere Application Server对SIP的支持
- ››WebSphere Process Server V6 体系结构概述
更多精彩
赞助商链接