适用于 RAC 环境的 Oracle ADF 数据源

Oracle ADF DataSource for RAC environment

我在 linux 上有 Oracle 数据库 11gR2 单实例环境,在 Windows 上有 Weblogic 10.3.5 环境。我有 运行 个带有单实例数据库的 ADF 应用程序。数据库和应用程序之间的连接是使用通用数据源 "MyAppDS" 配置的。 另一方面,我已经使用相同的应用程序配置了新的 RAC 数据库环境。 RAC 数据库和应用程序之间的连接是使用 GridLink DataSource 配置的。混淆是关于 JDBC/MyAppDS。对于 RAC,这应该相同还是不同。开发人员是否必须为 RAC 数据库创建新的连接字符串?请帮忙

JNDI 名称可以相同,只要另一个指向单个实例的名称从 JDBC/MyAppDS 更改为其他名称,比方说 JDBC/MyAppDSOld.

URL 应该是这样的:

jdbc:oracle:oci:@(DESCRIPTION = (LOAD_BALANCE = ON) (FAILOVER = ON)
(ADDRESS =(PROTOCOL = TCP)(HOST = 10.10.10.10)(PORT = 1521))
(ADDRESS =(PROTOCOL = TCP)(HOST = 10.10.10.11)(PORT = 1522))
(CONNECT_DATA =(SERVER = DEDICATED) (SERVICE_NAME = xxxx) (FAILOVER_MODE =(TYPE = SELECT)(METHOD = BASIC)(RETRIES = 180)(DELAY = 2))))

开发人员在创建连接时应使用 GridLink for RAC 数据源类型,以利用 Oracle ONS、TAF 和负载平衡到多个数据库实例。

有关事务、XA 等的更详细信息。请查看 here

希望对您有所帮助!

我们建议在 Oracle RAC 中使用 JDBC 瘦驱动程序。我们的大多数客户都在使用 JDBC 瘦驱动程序。 Active Grid Link 是与 WLS 一起使用的正确数据源。示例 RAC URL 如下所示。始终使用 SCAN 以获得更好的可管理性目的。

jdbc:oracle:thin:@(DESCRIPTION =
(CONNECT_TIMEOUT= 90)  (RETRY_COUNT=20)(RETRY_DELAY=3)
(ADDRESS_LIST =
  (LOAD_BALANCE=on)
  (ADDRESS = (PROTOCOL = TCP)(HOST=primary-scan)(PORT=1521)))
  (ADDRESS_LIST =
  (LOAD_BALANCE=on)
  ( ADDRESS = (PROTOCOL = TCP)(HOST=secondary-scan)(PORT=1521)))       
  (CONNECT_DATA=(SERVICE_NAME = gold-cloud)))