Отказоустойчивое соединение Java OCI с Oracle 9 - PullRequest
0 голосов
/ 07 января 2011

Нам нужна возможность аварийного переключения с одного хоста базы данных на другой в случае, если тот, к которому мы сейчас подключены, выходит из строя.Из того, что мы прочитали, «Прозрачное переключение приложений (TAF)» и «Быстрое переключение соединений (FCF)» доступны только в Oracle 10 и выше.Но в нашей среде есть Oracle 9.2.0.8.

Что было бы лучшим решением Java для обеспечения отработки отказа соединений с базой данных?Использование драйвера oci кажется лучшим решением, чем тонкий драйвер, однако мы продолжаем получать сообщение «Ошибка неудовлетворенной связи: ocijdbc11.dll отсутствует в java.library.path».У нас нет ocijdbc11.dll, но у нас есть ocijdbc10.dll в $ {ORACLE_HOME} / bin

Среда:

  • База данных = Oracle 9.2.0.8 с RAC, поддерживающим два сервера
  • Сервер = Solaris 10
  • Клиенты = Windows XP, пакет обновления 3
  • JDK = 1.6.0_20
  • Библиотека= ojdbc6.jar
  • На клиентах установлен толстый клиент Oracle 10.1.0.2.Это дает им файл ocijdbc10.dll в каталоге оракулов

Наша строка подключения в tnsnames.ora:
MY_SID =
(ОПИСАНИЕ =
(FAILOVER = вкл)
(ADDRESS = (PROTOCOL = tcp) (HOST = host1) (PORT = 1521))
(ADDRESS = (PROTOCOL = tcp) (HOST = host2) (PORT = 1521))
(CONNECT_DATA =
(SERVICE_NAME = db.fully.qualified.name)
(FAILOVER_MODE =
(TYPE = select)
(METHOD = basic))))

Мы создаем источник данных следующим образом:

  • BasicDataSource ds = new
  • BasicDataSource ();
  • ds.setUsername («имя пользователя»);
  • ds.setPassword («пароль»));
  • ds.setUrl ("jdbc: oracle: oci: @MY_SID");
  • ds.setDriverClassName ("oracle.jdbc.driver.OracleDriver");

1 Ответ

1 голос
/ 07 января 2011

Если вы получаете сообщение «Unsatisfied Link Error: ocijdbc11.dll не в java.library.path» для клиента 10g, похоже, вы используете драйверы 11g jdbc.Вам необходимо использовать драйверы 10g jdbc.

...