由于项目中weblogic与oracle rac集群环境之间的衔接一直有问题,无法实现load balance,今天下午 找了一个oracle售后顾问来给指导总结:
一、目前在weblogic配置load balance主要有三种方式
1、Gridlink Datasource
这是oracle收购bea之后新添加的一种建立datasource的方式。
oracle在官方文档中说明,使用grid link 可以有两种方式,一种是使用scan ,一种是使用地址串。
使用scan的时候必须得配置局域网内部dns,由于客户这边没有配置,因此只能使用地址串这种方式。
使用了地址串之后发现,无法实现load balance
地址串如下:
oadbs=
(description=
(address_list=
(address=(protocol=tcp)(host=202.205.16.71)(port=1521))
(address=(protocol=tcp)(host=202.205.16.72)(port=1521))
)
(connect_data=(service_name=oadbs))
)
然后又使用
如下串:
oadbs=
(description=
(address_list=
(address=(protocol=tcp)(host=202.205.16.71)(port=1521))
(address=(protocol=tcp)(host=202.205.16.72)(port=1521))
(load_balance=on)
(failover=on)
)
(connect_data=(service_name=oadbs))
)
发现能够实现load balance
通过oracle 售后专家的研究发现,gridlink 只能使用scan,不能使用地址串。这是oracle官方文档的bug
另外,gridlink中之所以第一个串不能实现load balance,而使用第二个可以,这是oracle开发人员偷懒,如果经过判断发现是普通串之后就作为普通串处理就没有利用gridlink的优势,如果发现是scan的话,才做gridlink处理。
2、multipool
3、普通datasource
使用普通的datasource必须使用如下串:
oadbs=
(description=
(address_list=
(address=(protocol=tcp)(host=202.205.16.71)(port=1521))
(address=(protocol=tcp)(host=202.205.16.72)(port=1521))
(load_balance=on)
(failover=on)
)
(connect_data=(service_name=oadbs))
)
load_balance 与failover,必须在address list 里面。