我要将 Web 应用程序从 Oracle Weblogic Server 11 移植到 Websphere 8.5。我发现的一个问题是 WLS 应用程序使用了一种称为“多数据源”的功能,其中多个 JDBC 连接可作为单个组件使用(从而提供对数据库的更健壮的访问)。
Websphere 是否也有等效的解决方案或我可以用来模拟它的解决方法?非常感谢
路易斯
1 回答
检查WLS 文档;
多数据源可以被认为是一个数据源池。多数据源最适合用于高可用性数据库系统(例如冗余数据库或 Oracle 真正应用集群 (RAC))节点之间的故障转移或负载平衡。
据我所知,WAS 不存在这样的设施。尽管如此,您可以通过使用负载平衡的 JDBC 连接字符串来获得相同的结果。Oracle RAC 的示例可能如下所示(引用Oracle 文档);
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 工作负载路由。以下是说明;
资源工作负载路由包括数据源和连接工厂故障转移以及从预定义的备用或备份资源进行的后续故障恢复。此功能使应用程序能够轻松地从资源中断(例如数据库故障)中恢复,而无需您嵌入备用资源和配置信息。您可以定制资源故障转移和故障回复灵活的配置选项,以满足特定环境和应用程序的需求。
您可以通过向数据源添加自定义属性来简单地配置此新功能。此功能的主要属性是;
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.