Oracle FCF OSN客户端配置

时间:2014-10-02 07:42:23

标签: java oracle10g spring-jdbc ucp

美好时光!

首先,这是我的环境:

  • Java 1.7
  • Tomcat 7
  • Oracle UCP连接池
  • 精简JDBC驱动程序
  • 带有RAC和SCAN的Oracle 10g数据库(some information

我需要配置Oracle FCF功能。有几篇关于它配置的文章:Spring documentation (1)complete example (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:\oracle\product\10.2.0\db_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 documentation

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变量,这就是瘦驱动程序的意思,对吧?

1 个答案:

答案 0 :(得分:1)

如果您只想使用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”是ons listerers的列表

10.247.43.111:4500 - node1上的远程ons listerner 10.247.43.112:4500 - node2上的远程ons listerner
等。

看到这个好例子:

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

ORACLE_HOME需要本地ONS恶魔连接。