Каков правильный синтаксис URL JDBC, если используются кошельки Oracle? - PullRequest
8 голосов
/ 03 октября 2011

Существует два синтаксиса URL: старый синтаксис, который будет работать только с SID, и новый с именем службы Oracle.
Старый синтаксис

jdbc:oracle:thin:@[HOST][:PORT]:SID

Новый синтаксис

jdbc:oracle:thin:@//[HOST][:PORT]/SERVICE

Каков правильный синтаксис URL JDBC , если используются кошельки Oracle ?
Согласно этой статье следует использовать следующий синтаксис URL:

jdbc:oracle:thin:/@db_alias  

Но какЯ вижу, что следующий URL тоже работает:

jdbc:oracle:thin:@db_alias

Какой из этих синтаксисов верен?

1 Ответ

22 голосов
/ 19 марта 2012

Когда вы используете Oracle Wallet со строкой JDBC, оба синтаксиса допускаются , пока ваш "db_alias" настроен в вашем магазине Wallet, очевидно.

Теперь, насколькопри использовании SQL * Plus с Oracle Wallet, единственный допустимый формат с Oracle Wallet:

/@db_alias

Кстати, в той статье, на которую вы ссылались (и others ), указывается, что вы можете подключиться толькоиспользование JDBC, если вы используете драйверы OCI, а не тонкий клиент.Обычно это происходит потому, что Java не знала файлы Oracle TNS и SQLNET.На самом деле это не так;вы можете подключиться с помощью тонкого драйвера JDBC с последними драйверами Oracle Client & JDBC, но это просто требует некоторой настройки.См. http://tech.shopzilla.com/2011/09/oracle-wallet-with-thin-driver-with-connection-pool-with-database-timeouts/ для получения информации об этом и краткую сводку ниже.

Использование Oracle Wallet с тонким драйвером JDBC

  1. Настройка Oracle Wallet как обычно (поставляется с Oracle Database Client), создавая соответствующие записи в ваших файлах tnsnames.ora и sqlnet.ora, а также учетные данные в вашем кошельке
  2. Добавьте следующееJAR для вашего Java classpath.Вы должны получить их от клиента Oracle 11g, и их можно найти в каталогах "jdbc" и / или "jlib", где установлен клиент
    • Драйвер Oracle JDBC - ojdbc6.jar
    • Oracle Wallet - oraclepki.jar
    • Oracle Security Certs - osdt_cert.jar
    • Oracle Security Core - osdt_core.jar
  3. Запустите приложение Javaсо следующими системными свойствами, указывая на соответствующие каталоги TNS и кошелька:
    • -Doracle.net.tns_admin=C:\myTNSdir
    • -Doracle.net.wallet_location=C:\mywalletdir
  4. Затем вы можете использоватьтонкая строка подключения JDBC в вашем приложении примерно так: jdbc:oracle:thin:/@MY_WALLET_DB_ENTRY
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...