oracle和weblogic,集成WebLogic 和Oracle RAC

集成WebLogic 和Oracle RAC(中)

4.WebLogic

集群和Oracle

RAC的集成方案

我们结合事务处理以及集群要求需求给出下面的应用场景及其配置方案供选择:

应用需求以及场景

配置方案

负载均衡

失败转移

全局事务(XA)

WebLogic JMS Store

Y

Y

Y

N

MultiPool+XA配置方案

Y

Y

N

N

MultiPool无XA配置方案

N

Y

N

Y

JDBC Connect-time Failover 没XA配置方案

N

Y

Y

N

JDBC Connect-time Faliover+XA配置方案

请注意不管是适用哪种方式,都需要使用Oracle 10g JDBC Thin Driver。

4.1 Oracle 10g

RAC与WebLogic 8.1.5使用方案1(MultiPool+XA)

从WebLogic Server 上配置MultiPool连接到多个Oracle RAC节点时,首先在一个WebLogic Server的实例上为一个Oracle RAC 节点配置一个JDBC连接池,如果有2个Oracle

RAC节点则配置2个连接池,如下图所示

然后再添加MultiPool,配置MultiPool时选择负载均衡或者高可靠性的算法,并且为该MultiPool添加上步创建的连接池。该过程可以通过WebLogic管理控制台进行配置当然也可以适用weblogic.Admin 命令行,或者使用WebLogic Scripting

Tool(WLST),或者JMX程序来配置。

在这种配置下使用数据库连接的过程是这样的,程序首先在JNDI树上查找MultiPool的数据源(Data source)然后给数据源(Data source)发个需要数据库连接的请求,于是数据源(Data source)与MultiPool通信,MultiPool根据创建MultiPool时选择的算法(负载均衡还是高可靠性)决定在MultiPool的列表里的哪个连接池将被使用。

当使用MultiPool+XA事务时,MultiPool绑定了当前的XA事务到其中的一个也是唯一的一个Oracle RAC的实例上,如果一个RAC的实例失败,失败转移回发生在MultiPool级别,如果当前操作所在的Oracle RAC实例失败时,当前事务还在PREPARE阶段之前,当前操作会继续重试直到重试超时,而如果当前事务已经处于PREPARE阶段之后时,即当前的操作包括事务将被MultiPool中的其他连接池接管。

设置MultiPool+XA配置方式的规则:

1.MultiPool里所有的连接池必须都是同类的,即连接池都必须是XA的连接池。

2.

MultiPool里所有的连接池里的所有的XA相关的属性必须被设置成一样包括如下的属性:

XARetryDurationSeconds

SupportsLocalTransaction

KeepXAConnTillTxComplete

NeedTxCtxOnClose

XAEndOnlyOnce

NewXAConnForCommit

RollbackLocalTxUponConnClose

RecoverOnlyOnce

KeepLogicalConnOpenOnRelease

3. MultiPool里每一个连接池必须设置下面的属性:

1.Oracle JDBC Thin driver 10g.

例子:

DriverName="oracle.jdbc.xa.client.OracleXADataSource"

URL="jdbc:oracle:thin:@db_server1:1521:SNRAC1"

2.KeepXAConnTillTxComplete="true"

–强制绑定当前的数据库连接直到上边的XA事务完成,这个属性必须设置为True

3.XARetryDurationSeconds="300"

4.CountOfTestFailuresTillFlush="1"

5. TestConnectionsOnReserve="true"

6. TestTableName="name_of_small_table"

关于WebLogic 的集群配置超脱本文的范畴,在本文里不进行详细的讨论,请参考BEA在线文档

下面是一个config.xml里面的JDBC以及MultiPool的配置的例子,供参考

Name="oracleRACPool_1"

DriverName="oracle.jdbc.OracleDriver"

InitialCapacity="5"

MaxCapacity="100"

Password="{3DES}I5fj3vh4+nI="

Properties="user=SCOTT"

RefreshMinutes="5"

TestConnectionsOnReserve="true"

TestTableName="dual"

Targets="myWebLogicCluster"

URL="jdbc:oracle:thin:@dbhost1:1521:dbservice"

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值