Конфигурация Oracle FCF OSN на стороне клиента

Хорошее время!

Прежде всего, вот моя среда:

Мне нужно настроить функцию 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:\oracle\product\10.2.0\db_1

...

Вопрос:

Моя база данных Oracle (RAC) расположена на удаленном сервере, и я использую тонкий драйвер JDBC, и что мне здесь делать (действительно ли мне нужно установить этот параметр и, если да, то как)? В первой статье нет смысла настраивать такой параметр JVM, только сказано, что мне нужно настроить параметр "ONSConfiguration" источника данных, в котором я должен перечислить все узлы RAC...

ОБНОВЛЕНИЕ 1:

Также из второй статьи:

CLIENT-SIDE ONS CONFIGURATION
...
(2) ONS daemon on the client side
Example ons.config file for a client:
...

В начале этой статьи говорится, что "сторона клиента" - это приложение на основе Java, а "сторона сервера" - это база данных (RAC). Действительно ли необходимо создать файл "ons.config" на стороне приложения на основе java в случае использования тонкого драйвера JDBC?

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_HOME, когда у меня нет локальной установки базы данных Oracle, вот что такое тонкий драйвер, верно?

1 ответ

Решение

Если вы хотите использовать только пул UCP, то вам просто нужна эта настройка:

PoolDataSource pds = PoolDataSourceFactory.getPoolDataSource();
pds.setONSConfiguration("nodes=10.247.43.111:4500, 10.247.43.112:4500");
pds.setFastConnectionFailoverEnabled(true);

где "node =10.247.43.111:4500, 10.247.43.112:4500" - это список дополнительных списков

10.247.43.111:4500 - удаленный листинг на узле 1
10.247.43.112:4500 - удаленный листинг на узле 2
и т.п.

посмотрите этот хороший пример:

http://www.idevelopment.info/data/Programming/java/jdbc/High_Availability/FastConnectionFailoverExampleThin.java

и этот http://docs.oracle.com/cd/B19306_01/java.102/b14355/fstconfo.htm

ORACLE_HOME необходим для локального подключения демона ONS.

Другие вопросы по тегам