ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 最佳实践:基于Oracle RAC构建WebSphere Process Server6.2高可用性

最佳实践:基于Oracle RAC构建WebSphere Process Server6.2高可用性

原创 Linux操作系统 作者:tiantian_1021 时间:2009-05-26 13:55:39 0 删除 编辑

最佳实践:基于Oracle RAC构建WebSphere Process Server6.2高可用性

田甜 IBM软件测试工程师

 胡滨 IBM软件测试工程师

  

1.       概述

Oracle RAC (Real Application Cluster, 真正应用集群 由多台Oracle数据库服务器组成,保证了单一节点宕机后失败切换,另一方面,Oracle RAC可进行并行计算和负载均衡,与单一数据库节点相比,性能更加稳定。WebSphere Process Server提供了对Oracle RAC的配置支持,用来保证大数据量处理和系统的实时可靠性。

本文介绍使用Oracle RAC的失败切换功能来介绍WebSphere Process Server (以下简称WPS)高可用性的支持。在实现此测试过程中,笔者将数据库服务器上的一个节点置为不可用的情景来触发Oracle实施失败切换(failover)功能,与此同时,事件不停息地产生并持续流经到WPS中进行正常处理。笔者使用CitiApp场景来完成这个事件发送过程。为方便起见,本文以Websphere Process Server 6.2 Stand-alone单机架构为例,详细阐述配置步骤及场景测试验证。在网络部署架构(Network Deployment)中,配置过程是类似的。

在本文中,笔者使用两台Linux机器作为Oracle节点,一台共享磁盘阵列来存放Oracle 数据文件和日志文件。拓扑图如下所示:

1 Oracle RAC 拓扑结构

 

      在使用多节点的Oracle RAC拓扑结构之前,首先要确保单一节点的Oracle 数据库在WPS中正确配置,即本文第二部分所述的单点配置,在此基础上,才能继续进行针对WPSOracle RAC即集群配置。

2.       Oracle RAC的单节点配置

配置基于Oracle数据库的WPS通用配置过程包括以下几个部分。

2.1   拷贝驱动文件

Oracle驱动文件 (classes12.zip)Oracle DB服务器拷贝到WPS服务器。

2.2   建立Oracle用户

Oracle中建立多个Oracle用户,以用于WPS的不同用途。在此说明,针对Oracle数据库的内部原理,每个实例(instance)拥有一套独立的系统资源,建立多个实例将消耗巨大的系统资源(CPU,内存,硬盘空间等)。而在一个实例中创建多个用户(或模式,Schema)则可共享一个实例的资源,但实例的配置参数是共享的。读者可以选择创建多个实例以区分不同的实例参数来达到特定的性能要求,或根据本文的推荐,在同一实例中建立不同的模式以示区分。

 

 

1WPS使用的Oracle 用户

本文使用的模式/用户名

WPS中使用的默认名称

说明

WPCDB

实例ID的前3个字母+COMM

WPS主要配置用户

CEIDB

实例ID的前3个字母+CEID

用来配置公共事件基础结构(CEI)

SCASYSMSG

实例ID的前3个字母+SS00

用来配置服务组件架构(SCA)中系统总线(System Bus)消息引擎(Messaging Engine ME)的数据存储

SCAAPPMSG

实例ID的前3个字母+SA00

用来配置SCA中应用总线(Application Bus)ME的数据存储

CEIMSG

实例ID的前3个字母+CM00

用来配置CEIME中的数据存储

BPCMSG

实例ID的前3个字母+BM00

用于配置业务流程编排器(Business Process Choreographer, BPC)总线上的数据存储

BPCDB

实例ID的前3个字母+BE00

用于业务流程编排器容器(BPC container)的配置

BPCOBS

说明:此用户只限于对安装了业务流程编排器浏览器有效

实例ID的前3个字母+BC00

用于业务流程编排器浏览器(BPC explorer)的配置

Oracle中创建了以上用户后,我们需要在Oracle中将以上用户授予相应权限。以下为授予WPCDB用户的例子,读者需重复此步骤直至以上所有用户均授予了权限。

grant connect, resource, unlimited tablespace to WPCDB;
grant execute on dbms_system to WPCDB;
grant javauserpriv to WPCDB;

 

2.3 安装WPS 产品

       本文略去安装WPS产品的过程,在过程中注意选择“延迟创建概要文件”。

2.4   创建概要文件

在安装产品之后,需要手工创建概要文件。本文推荐使用manageprofiles.bat/manageprofiles.sh命令来手工创建概要文件,而非Profile Management Tool (PMT)。原因是因为,基于oracle的概要文件,在PMT工具中只能使用WPS默认用户名(见表1中的第2列),而不能使用自定义的用户名称,这将使得手工创建的Oracle用户没有用武之地。以下是基于Oraclemanageprofiles命令的一个范例:

manageprofiles.bat -create -templatePath D:\IBM\WPS62GM\profileTemplates\default.wbiserver -profileName oraProfile -enableSecurity false -configureBPC false -dbType ORACLE10G -dbName RAS -ceiDbName RAS -dbDelayConfig true -dbCommonForME true -dbDriverType oracle_thin -dbJDBCClasspath D:\ora_driver -dbServerPort 1521 -configureBSpace false -configureBRM false -dbHostName 9.125.70.176 -winserviceCheck false -dbCommonUserId WPCDB -dbCommonPassword passw0rd -dbCeiUserId CEIDB -dbCeiPassword passw0rd -dbSysMeUserId SCASYSMSG -dbSysMePassword passw0rd -dbAppMeUserId SCAAPPMSG -dbAppMePassword passw0rd -dbCeiMeUserId CEIMSG -dbCeiMePassword passw0rd -dbBPCMeUserId BPCMSG -dbBPCMePassword passw0rd

参数说明:

-dbType: ORACLE10G用来标识使用的是Oracle 10g版本数据库

-dbName: Oracle数据库的实例名称

-ceiDBName: -dbName

-dbDriverType: 使用oracle_thin方式的驱动程序

-dbJDBCClasspath: WPS机器上classes12.zip驱动程序的路径

-dbHostName: Oracle数据库主机名/IP地址

-dbCommonUserId: 使用已创建的WPCDB用户,用于WPS通用数据库(Common DB)

-dbCeiUserId: 使用已创建的CEIDB用户,用于公共事件基础结构(CEI)

-dbSysMeUserId:使用已创建的SCASYSMSG用户,用于服务组件架构(SCA)系统总线上的消息引擎

-dbAppMeUserId:使用已创建的SCAAPPMSG用户,用于服务组件架构上应用总线上的消息引擎

-dbCeiMeUserId:使用已创建的CEIMSG用户,用于公共事件基础结构总线上的消息引擎

-dbBPCMeUserId:使用你哦个已创建的BPCMSG用户,用于业务流程编排器总线上的消息引擎

2.5   配置公共数据库

将公共数据库配置脚本目录从WPS机器的\dbscripts\CommonDB\Oracle\上拷贝到Oracle服务器上。注意,将从Windows上生成的shell脚本拷贝到Linux/Unix上时,有可能需要执行dos2unix命令以避免文件格式不识别问题。在Oracle服务器上执行此脚本并确保执行成功。

2.6   配置总线

更改每个总线上的数据源信息,以使用正确的模式名称和认证别名。

Ø         对于CEI总线:

2CEI 总线配置

确保使用模式名:CEIMSG,认证别名:CEIME_.server1_Auth_Alias

Ø         对于BPC总线:

3:业务流程编排器总线配置

确保使用模式名:BPCMSG,认证别名:BPCME_<数字>_Auth_Alias

Ø         对于SCA Application总线:

 

4SCA 应用总线配置

确保使用模式名:SCAAPPMSG,认证别名:SCAAPPME<数字>_Auth_Alias

Ø         对于SCA System总线:

   

5SCA系统总线配置

确保使用模式名:SCASYSMSG,认证别名:SCASYSME<数字>_Auth_Alias

2.7   配置CEI

将生成的CEI配置脚本从WPS机器 \dbscripts\CEI_目录拷贝到Oracle 数据库某处。,有可能需要执行dos2unix命令已避免文件格式不识别问题。

执行命令:

cr_event_oracle.sh CEI_DB_User_Password sys sid= racleHome=

参数说明:

CEI_DB_User_Password:CEIDB用户的密码

SYSUSER:使用sys用户

SYSUSERPWDsys用户的密码

Sid=:Oracle数据库实例名

2.8   配置BPC container

按照如下步骤配置BPC container

Ø         数据源:

模式名:BPCDB

用户名:BPCDB

服务器:oracle服务器IP地址

驱动提供:Oracle 10g11g

6BPC container的数据源配置

Ø         人工任务管理器邮件配置:

取消enable e-mail service选项

7:人工任务管理器邮件配置

Ø         安全:

本文中没有使用到安全设置,将其保留为空。若配置了安全,将信息填入。

Ø         状态观察器

勾选CEI logging for Business Flow Manager

8:状态观察器

Ø         SCA 绑定:

保留为空

Ø         总线:

模式名:BPCMSG

用户名:BPCMSG

服务器:oracle服务器IP地址

提供者:Oracle 10g11g

9:业务流程编排器容器的总线配置

点击完成并保存更改。

2.9   配置BPC Event Collector

Ø         数据源:

模式名:BPCOBS

用户名:BPCOBS

Ø         观察对象

选择server1,若是网络部署(Network Deployment)环境,选择相应的集群名称。

10:事件收集者

点击OK完成,保存更改。

2.10  配置BPC explorer

添加一个新的BPC explorer,勾选“开启报告功能”

11BPC explorer

点击OK完成,保存更改

2.11  验证数据源连接

在重启环境前,我们需保证所有的数据源连通正常,如果连通不正常,需修复错误,直至所有连接测试通过。

重启WPS server,检查SystemOut.log文件,确保没有任何异常信息。至此,单机版的Oracle数据库配置结束。

3.       RAC RAC的集群配置

为了支持Oracle RAC环境,WPS在数据源的JDBC URL中引入了多重地址列表功能,使得URL地址如下所示:

jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=9.125.70.176)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=9.125.70.177)(PORT=1521))(FAILOVER=on)(LOAD_BALANCE=on))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=RAS)))

12Oracle RAC数据源URL

替换HOSTSERVICE_NAME属性值以满足实际环境。建议读者拷贝以上字符串以避免输入错误。更改每一个数据源的URL信息,保存设置并保证重新测试仍然可以成功。

4.       测试用例场景CitiApp 简介

CitiApp基于“快速开发,易于更改”为原则,以Web 客户端,SCA模块和BPEL流程组合而成, 用户通过登陆JSP页面输入需要处理的数据量,SCA模块随机生成对应的数据,在BPEL流程中对业务对象进行简单处理(如,赋值,更改属性等)再通过JDBC适配器将处理后的业务对象以记录的形式插入应用数据库中。由于该流程简单,部署方便,在用户指定事件数连续不断发送业务请求,适用于进行测试集群环境下的负载均衡和失败切换功能。

CitiApp主要由以下三部分构成:

  • Web 模块: RecoverDriverUI

用户登陆http:///RecoveryDriverUI/Driver.jsp输入所需处理的数据量

  • SCA 模块:AccountRouting

POJO中通过随机方法生成业务对象(Business Object 并为每个Business Object创建处理实例,通过异步调用进入Account Creation流程

13AccountRouting

 

  • BPEL长流程模块

   BPEL长流程中对业务对象进行简单处理,并通过JDBC适配器插入应用数据库中

                                                       14AccounCreation BPEL流程

                                         图15AccounCreation 的调用关系

 

5.       配置CitiApp场景

具体如何配置CitiApp场景的过程超出了本文介绍的范畴。总的来说,包括如下步骤:

1)        oracle中创建用户rcovflda,并赋予权限

2)        部署应用

3)        配置数据源

4)        创建认证别名和数据源

5)        更改连接工厂属性

6)        更改数据源的RAC字符串格式

6.       测试流程

6.1   验证正常情况下的流程

打开citiApp应用的主页:

16CitiApp主页

更改BPEL process/Web service Endpoint URL为实际环境,点击运行。在Oracle中检查用户rcovfldaAccount表,若有一条记录,并且WPS SystemOut.log中无错误信息,则表明流程成功。

6.2   测试Oracle RAC

为了测试WPS失败切换功能,本文模拟在数据库进行持久的读写操作时将一个节点置为不可用状态。为此,笔者在页面模拟发送大量的事件(大于1000条),同时关闭第二个RAC节点上的数据库(在sys用户下使用shutdown immediate命令)。如果数据库中应用表中的记录仍然在持续增加,而没有受到数据库关闭的影响,由此可以得出结论:数据源中的多重地址列表已经生效,即其中一个节点状态为不可用时,另一个节点仍然可以接管过来进行写入操作,客户的业务流程没有受到影响。

7.       结论

实际测试结果也说明了这一点。当发送完所有事件后,在数据库的应用表中可以看到记录数目等于发送的事件数目,没有事件丢失。这给客户带来的商业价值就在于,以很小的变更(替换多重地址列表的JDBC URL)实现了对数据库容错的支持。只要Oracle RAC配置正确,在WPS这端可充分利用Oracle RAC功能来实现对客户业务流程的高可用性支持。至此,我们可以认为,基于Oracle RAC架构的WPS成功实现了失败切换功能。

 

作者简介:

田甜,2007年加入IBM中国软件开发中心,目前作为WebSphere Process Server RASRealiabity,Availability, Serviceability)的Technical Lead, 主要从事测试策略设计,测试流程开发,及其它测试协调安排工作

胡滨,2006年加入IBM中国软件开发中心,先后从事WebSphere Interchange Server, WebSphere Process Server产品测试工作,现在工作重点和兴趣在于基于WebSphere Process ServerReliability, Availability, Serviceability的相关测试领域,以及一些性能测试和自动化平台的开发和维护。

参考文献:

http://publib.boulder.ibm.com/infocenter/dmndhelp/v6r2mx/topic/com.ibm.websphere.wps.620.doc/doc/tins_oracleincorp.html

CEI.JPG

SCA_SYS.JPG

BPC.JPG

SCA_APP.JPG

Oracle_topo4.JPG

图6.JPG

图7.JPG

图8.JPG

图9.JPG

图10.JPG

图11.JPG

图12.JPG

图13.JPG

图14.JPG

图15.JPG

图16.JPG

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/21740322/viewspace-604211/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2009-05-25

  • 博文量
    2
  • 访问量
    10743