我要将Web应用程序从Oracle Weblogic Server 11移植到Websphere 8.5。我发现的一个问题是WLS应用程序使用名为“多数据源”的功能,其中多个JDBC连接可用作单个组件(从而提供对数据库的更强大的访问)。
对于Websphere还有一个等效的解决方案,还是我可以用来模拟它的解决方法?
非常感谢
路易斯
答案 0 :(得分:2)
可以将多数据源视为数据源池。多 数据源最适合用于故障转移或负载平衡 高可用性数据库系统的节点,例如冗余 数据库或Oracle Real Application Clusters(RAC)。
据我所知,WAS不存在这样的设施。尽管如此,您可以通过使用负载平衡的JDBC连接字符串来实现相同的结果。 Oracle RAC的示例可能如下(引用Oracle documentation);
jdbc:oracle:thin@(DESCRIPTION=
(LOAD_BALANCE=on)
(ADDRESS=(PROTOCOL=TCP)(HOST=racnode1) (PORT=1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=racnode2) (PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=service_name)))
您将要做的是在您喜欢的范围内在WAS上定义单个普通数据源,并如上所述配置负载平衡JDBC连接字符串(此处示例负载平衡两个RAC节点)。
如上配置的负载平衡功能由数据库供应商提供的JDBC驱动程序提供,因此如果您使用的是其他数据库,则应检查数据库文档以获得支持。
编辑:我的答案的修正是有序的。我遇到了这个功能,这确实是WAS8中的一个新功能,称为Resource workload routing。以下是描述;
资源工作负载路由包括数据源和连接工厂 故障转移和后续从预定义的备用或故障恢复 备份资源。此功能使应用程序可以轻松恢复 来自资源中断,例如数据库故障,而不需要 您要嵌入备用资源和配置信息。您可以 定制资源故障转移和故障恢复灵活配置 满足您的环境和应用需求的选项。
您可以通过向数据源添加自定义属性来简单地配置此新功能。此功能的主要属性是;
alternateResourceJNDIName
Values: String value containing a direct JNDI name.
Description: An alternate connection factory or data source resource
should be like the primary resource. Provide the JNDI name of the
alternate resource to enable the fail over feature.