WebLogic 10.3.4新功能:Gridlink Data Source

在WebLogic 10.3.4中,为了增强对RAC的支持,Oracle推出了Gridlink Data Source,取代原先的Multi Data Source:

http://download.oracle.com/docs/cd/E17904_01/web.1111/e13737/jdbc_intro.htm#BHCBACAG

 

Enhanced Oracle RAC Support

This release provides a new data source type, a GridLink Data Source, to provide enhanced support for Oracle RAC.

 

Multi Data Source

原来的Multi Data Source的工作原理是为每台RAC的结点配置一个Datasource,然后把所有的这些Datasource聚合起来配置一个Multi Data Source。虽然Multi Data Source也提供Failover(容错)和Load Balancing(负载均衡),但是功能相对有限。

1) 配置比较复杂

需要为每一个RAC 结点手动配置一个Data Source,添加和删除节点都需要WebLogic管理员手动操作。

2) Failover是data source级别的,不是connection 级别的

Multi Data Source需要开启 Test Reserved Connections ( TestConnectionsOnReserve ) 功能。这个功能开启以后,当应用向一个Data Source申请一个Connection的时候,WebLogic server需要先测试这个Connection再返回。如果这个测试失败,WebLogic会重建一个连接。如果重建再失败,Data Source就会被标识成dead,然后WebLogic自动Failover到下一个Multi Data Source里面的Data Source。

当一个Data Source被标识成dead以后,WebLogic会主动的每隔一段时间(缺省120秒)查询数据库结点。如果测试成功,这个Data Source会被重新启用。

对一个已经获得并在使用的connection,WebLogic无法实现Failover。

3)Load Balancing仅仅是简单的round robin

如果一个应用开启了多个Connection,那么根据round robin的原则,这多个Connection可能会来自多个不同的数据库结点。 这个实际上有性能上的影响。

Gridlink Data Source

新推出的Gridlink Data Source相对来说更有效率,因为它很大程度上借助了数据库的功能。它使用了Oracle的ONS(Oracle Notification Service)的特征。看下图:

 


数 据库RAC端的ONS服务采集RAC结点的运行数据。这些数据传给Gridlink Data Source的ONS监听客户端。UCP-RAC模块分析这些数据并给出建议,Gridlink Data Source通过这些数据/建议来实现连接池的Failover,Load Balancing和其他的一些特性。

我们来看看Gridlink Data Source的一些改进功能:

1)首先,配置变得简单了

你只需要配置一个Gridlink Data Source,它就会处理与后台的RAC数据库的通讯。相对Multi Data Source,WebLogic管理员的工作量减少很多。

如果你配置了Oracle的SCAN服务就更简单了,RAC结点的添加删除都是自动完成,因为对Gridlink Data Source来说,它只知道一个SCAN地址就好了。就好象一个域名一样,你不需要知道后面用了多少IP来实现。

2)更快速有效的Failover

使 用ONS,Gridlink Data Source可以实时的捕捉到RAC端的信息。如果有结点出错,Gridlink Data Source很快将与其对应的Connection标识为不可用。这样就避免了Multi Data Source中需要不断主动测试Connection所带来的overhead。

3)实时的Load Balancing

同样因为ONS的数据,Gridlink Data Source可以知道哪些RAC结点很忙,哪些很闲,于是它可以有效的将哪些来自空闲RAC的Connection分配给应用请求,实现实时的Load Balancing。

4)沉稳应对RAC结点的关闭

如果是有计划的关闭,Gridlink Data Source会等当前Active的事务结束再关闭Connection。新的Connection请求将被发送到其他的RAC结点。

如果是突发的RAC结点关闭,Gridlink Data Source也会沉着的将当前的事务rollback,然后将新的 Connection请求发送到其他的RAC结点。

5)全局事务的Connectoin会尽量在一台RAC结点上

前面讲过Multi Data Source的Round Robin策略会造成同一个事务的多个Connection被发送到不同的RAC结点上。

Gridlink Data Source在一个事务的第一个Connection创建后会将该事务的所以后续Connection请求发送到同一个RAC结点上。这样可以减少后台同步处理,提高全局事务的运行效率。

创建Gridlink Data Source

创建的过程不复杂,和一个普通的Data Source差不多,都从这里开始:


名字之类的配置,注意数据库类型就是Oracle,呵呵,当然了,RAC就是Oracle的:


XA的配置页面掠过,到了输入RAC地址的页面:


其实两个选择都一样,一个是一个一个的添加server,然后由WebLogic生成JDBC URL:


一个是自己输入JDBC URL:


没有区别,怕写错就让WebLogic生成,掠过测试页面,下一步就是关键的ONS客户端配置:


如果您使用SCAN的话,这里可以就输入SCAN的地址。

Wallet可以用来加密ONS的通讯,这里不表。

掠过测试页面,只要target一下就好了:

你可能感兴趣的:(weblogic)