IBM WebSphere Process Server 要求运行多个数据库,Oracle 是许多流行数据库之一,该数据库有时在 WebSphere Process Server 安装中使用。尽管对 Oracle Real Application Cluster (RAC) 的共享一切的基本体系结构有较大的争论,但使用 RAC 可以为 Oracle 数据库获得高可用性、可靠性、工作负载管理和可伸缩性。
尽管有些人可能有这样的错误认识,认为 Oracle RAC 不能用于可在 WebSphere Process Server 中使用的数据库,甚至不能用于可在最新版本 6.0.2 中使用的数据库,但事实情况是,目前在 WebSphere Process Server 版本中使用 Oracle RAC 相当简单,只需稍微更改一些相应的数据源配置即可。本文向您介绍一种简单的方法,通过执行一些必要的配置更改,便可成功对 WebSphere Process Server 数据库使用 Oracle RAC。
WebSphere Process Server 数据库
根据您的安装情况,WebSphere Process Server 可能需要使用以下四个数据库(在本文中的相应地方,术语数据库 有时是指数据库模式):
Oracle RAC 和数据源
在使用 WebSphere 产品创建 Oracle JDBC 数据源时将指定一个 Oracle URL 和驱动程序类型,其中包含 Oracle 数据库服务器主机名、端口号和 Oracle 数据库名。典型的 Oracle URL 可能类似于以下所示:
jdbc:oracle:thin:@::
配置 Oracle RAC 不是一项简单的任务。Oracle 数据库管理员 (DBA) 在创建和配置 RAC 时需要考虑与故障转移、负载平衡以及其他事项相关的诸多因素。不过,对于 WebSphere Application Server 运行时,Oracle RAC 本质上就是使用合适的 JDBC 驱动程序访问的另一数据库。
可以通过多种方法在 WebSphere 产品中配置 RAC 环境。其中一种方法是让 JDBC 驱动程序平衡数据库连接请求(因此,也称为工作负载平衡)。另一可靠的备选方法是让 WebSphere Workload Management (WLM) 组件执行连接平衡;这可以通过将每个 WebSphere 集群成员配置为指向一个(而且仅指向一个)Oracle 数据库服务器来完成。本文使用的是前一个策略。在此方法中,Oracle JDBC 驱动程序将识别基础的 RAC 并与之交互,并从适当的数据库服务器获得连接,因此可以按 DBA 的配置维持故障转移和负载平衡特征。
不过,要让 JDBC 驱动程序与 RAC 一起工作,在定义 WebSphere JBDC 数据源时需要指定较为复杂的 Oracle URL。下面是 RAC 的一个示例 URL,其中包含两个 Oracle 数据库服务器,目的是在它们之前平衡连接负载:
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST= myoraclehost1.ibm.com)(PORT=1521)) (ADDRESS=(PROTOCOL=TCP)(HOST= myoraclehost2.ibm.com)(PORT=1521)) (FAILOVER=on)(LOAD_BALANCE=on) (CONNECT_DATA=(SERVER=DEDICATED) (SERVICE_NAME=dbservice))) |
而且,在 WebSphere 产品中使用 Oracle RAC 这一方法中,在定义相关的 Oracle JDBC 数据源时,您只需将 RAC-ified URL 指定为 Oracle URL。
WebSphere Process Server 中的 Oracle
这些数据源由内部 WebSphere Process Server 应用程序使用,并且它们的名称和范围可以根据不同的版本而改变。
对 WebSphere Process Server 的所有四个数据库使用 Oracle 数据库相当简单(请参阅参考资料)。WebSphere Process Server 基础结构通过数据源访问这些数据库。在 WebSphere Process Server 的四类基本数据源中,消息传递引擎数据源应手动创建,而其他三种类型一般是直接通过向导或脚本创建的:
图 1. 配置 WebSphere Process Server 数据库
图 2. Oracle 数据库属性
通过这些指定的值,部署管理器概要创建向导将使用 jndi 名称 jdbc/WPSDB 创建计算单元范围的 WebSphere Process Server 数据源(图 3)。
图 3. 创建的数据源
图 4. 配置业务流程容器
databaseName=<DBName>
serverName=<Fully qualified Oracle server name or IP address>
portNumber=<Oracle port number>
dataSourceName=URL=jdbc:oracle:thin:@<hostname>:<port number>:<DBName>
在 WebSphere Process Server 集群中安装业务流程容器的过程中,该向导将使用 jdbc/BPEDB_<集群名称> 作为 JNDI 名称创建 BPEDataSourceOracle_<集群名称> 数据源。在 6.0.1.x 版本中,将在所有计算单元范围内创建此数据源;在 6.0.2.0 版本中,将在集群范围内定义数据源。
在执行 J2EE 构件创建脚本之后,将会配置两个 Oracle 数据源:event (jdbc/cei) 和 event_catalog (jdbc/eventcatalog)(图 5)。
图 5. 创建 JDBC 数据源
两个 CEI 数据源的范围可以通过在 OracleResponseFile.txt 文件中指定 SCOPE 属性进行控制。
WebSphere Process Server 中的 RAC
将 WebSphere Process Server 向导和脚本创建的所有数据源的 Oracle URL 更改为特定于该环境的实际 RAC URL。例如,假设您使用 Deployment Manager Profile 创建向导和以下值创建一个数据源:
jdbc:oracle:thin:@myoraclehost1.ibm.com:1521:WPRCSDB
图 6. 创建的数据源
要使此 WebSphere Process Server 数据源适用于 RAC,您需要做的就是将向导创建的这一特定于单一服务器的传统 Oracle 数据源属性 URL 替换为 RAC URL,如图 7 所示。(RAC URL 应由 Oracle DBA 提供,并且应与如上所示的示例 URL 类似。)
图 7. 使用 RAC URL 替换单一服务器 URL
还应对使用 WebSphere Process Server 向导和脚本创建的所有其他数据源执行相同的 URL 替换操作。
重新启动部署管理器和任何运行的 WebSphere Process Server 实例。
在管理控制台中验证修改的数据源与测试连接工具的连接性。尽管本文中的 URL 针对的是 Oracle 瘦驱动程序,但 Oracle OCI 驱动程序还可以用于 Oracle URL。这一 URL 替换策略也适用于 Oracle OCI 驱动程序。
还有需要注意一点:在手动创建消息传递引擎数据源时,您可以为 Oracle 数据源属性直接指定 RAC URL,并可以完全避免“传统 Oracle 到 Oracle RAC URL”的替换步骤。
结束语
尽管 Oracle RAC 在较新的 WebSphere Process Server V6.0.2.x 和更高版本中是正式支持的产品,但您可以使用本文中描述的 URL 替换策略为 Oracle RAC 环境配置任何 WebSphere Process Server 安装。
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞0
添加新评论2 条评论
2012-02-23 16:04
2012-02-16 10:02