祝您愉快!
首先,这是我的环境:
- Java 1.7
- Tomcat 7
- Oracle UCP连接池
- 精简JDBC驱动程序
- 带有RAC和SCAN的Oracle 10g数据库(一些信息)
我需要配置Oracle FCF功能。关于它的配置,有几篇文章:Spring文档(1),完整的示例(2)。。。
我已经执行了文章(1)中描述的所有步骤,还配置了一个UCP日志记录,在那里我可以看到FCF实际上已经启用。
令我困惑的是第二篇文章的以下陈述:
FAST CONNECTION FAILOVER PREREQUISITES
...
5.) The JVM in which your JDBC instance is running must have
* oracle.ons.oraclehome set to point to your ORACLE_HOME. For example:
*
* -Doracle.ons.oraclehome=C:oracleproduct10.2.0db_1
...
问题:
我的Oracle数据库(RAC)位于远程服务器上,并且我使用瘦JDBC驱动程序,因此我应该在这里做什么(我真的需要设置uop这个参数吗?如果需要,还需要如何设置)?在第一篇文章中,关于配置这样的JVM参数没有任何意义,只是说我需要设置数据源的"ONSConfiguration"参数,在那里我应该列出所有RAC节点。。。
更新1:
同样来自第二篇文章:
CLIENT-SIDE ONS CONFIGURATION
...
(2) ONS daemon on the client side
Example ons.config file for a client:
...
在本文的开头,据说"客户端"是一个基于java的应用程序,而"服务器端"则是一个数据库(RAC)。在使用瘦JDBC驱动程序的情况下,真的需要在基于java的应用程序端创建"ons.config"文件吗?
UDPADE 2:来自Oracle文档:
Remote Configuration
UCP for JDBC supports remote configuration of ONS through the SetONSConfiguration pool property. The ONS property value is a string that closely resembles the content of an ons.config file. The string contains a list of name=value pairs separated by a new line character (n). The name can be: nodes, walletfile, or walletpassword. The parameter string should at least specify the ONS configuration nodes attribute as a list of host:port pairs separated by a comma. SSL would be used when the walletfile attribute is specified as an Oracle wallet file.
Applications that use remote configuration must set the oracle.ons.oraclehome system property to the location of ORACLE_HOME before starting the application. For example: java -Doracle.ons.oraclehome=$ORACLE_HOME ...
但是,当我没有本地安装ORACLE数据库时,我如何设置ORACLE_HOME变量,这就是瘦驱动程序的作用,对吧?
如果你只想使用UCP池,那么你只需要这个设置:
PoolDataSource pds = PoolDataSourceFactory.getPoolDataSource();
pds.setONSConfiguration("nodes=10.247.43.111:4500, 10.247.43.112:4500");
pds.setFastConnectionFailoverEnabled(true);
其中"nodes=10.247.43.111:4500,10.247.43.112:4500"是列表器的列表
10.247.43.111:4500-节点1上的远程ons listener
10.247.43.112:4500-节点2上的远程ons listener
等
看看这个好例子:
http://www.idevelopment.info/data/Programming/java/jdbc/High_Availability/FastConnectionFailoverExampleThin.java
这个http://docs.oracle.com/cd/B19306_01/java.102/b14355/fstconfo.htm#CEGGDDFJ
本地ONS恶魔连接需要ORACLE_HOME。