Работает ли Oracle SQL Developer с sqlnet.ora?

Есть ли способ настроить Oracle SQL Developer для соблюдения порядка поиска TNS в sqlnet.ora?

У нас правильно настроена вся информация в папке TNS_ADMIN:

ldap.ora
sqlnet.ora
tnsnames.ora

Наша конфигурация sqlnet.ora TNS выглядит следующим образом:

...
NAMES.DIRECTORY_PATH= (LDAP, TNSNAMES)
...

Мы хотим, чтобы клиент сначала проверил LDAP, а затем локальный tnsnames.ora в качестве резервной копии на случай потери соединения LDAP.

Но похоже, что Oracle SQL Developer не может использовать sqlnet.ora.

Вы должны либо явно выбрать TNS, либо LDAP.

Я гуглю, но никто не беспокоится об этом.

Пожалуйста, дайте мне знать, возможно ли это даже с Oracle SQL Developer, если да, то как?


person LeY    schedule 10.10.2018    source источник


Ответы (2)


Чтобы SQLNet.ORA вступила в игру, установите THICK соединение.

введите описание изображения здесь

После того, как вы установили свой HOME, установите флажок «Использовать OCI / толстый драйвер» ниже.

Вам будет предложено перезапустить sqldev.

Затем выполните подключение.

Чтобы подтвердить, что ваше соединение является «толстым», запустите это на листе SQL с помощью F5:

show connection

То, что возвращается, должно показывать :OCI в URL-адресе подключения. Если вы видите слово «тонкий», вы не установили драйвер THICK.

В противном случае по умолчанию SQL Developer использует JDBC для подключения, и SQLNet.ora никогда не вступает в игру. Однако он все еще может искать и находить файл TNSNames.ora.

Запустите это на листе, чтобы увидеть, что к чему с TNS.

введите описание изображения здесь

person thatjeffsmith    schedule 10.10.2018
comment
Мой коллега-гуру Oracle рассказал мне простой трюк, чтобы решить эту проблему. Я сам разместил ответ ниже. С вашим объяснением мне любопытно, почему решение работает, если JDBC не дружит с sqlnet.ora, можете ли вы объяснить? Спасибо - person LeY; 10.10.2018
comment
@LeY JDBC - это собственный драйвер - ему не нужен SQLNET.ORA, который является частью клиента оракула. Однако, если вы хотите, чтобы ваша Java-программа прошла через это и взяла что-то из SQLNET.ORA, то толстая настройка - это способ сделать это. - person thatjeffsmith; 10.10.2018

Для людей, которые также имеют проблемы с этим. Кто-то сказал мне простое решение.

введите здесь описание изображения

person LeY    schedule 10.10.2018
comment
это заставляет OCI для соединения и будет работать, если мы сможем выяснить, где находится ваш Oracle HOME ... если вы получите сообщение об ошибке, перейдите к настройкам, как показано выше, и укажите дом, и попробуйте кнопку «тестировать» - person thatjeffsmith; 10.10.2018
comment
@thatjeffsmith Вы имеете в виду, что в этом случае, если ваше соединение с LDAP потеряно, это не удастся, я прав? - person LeY; 10.10.2018
comment
@thatjeffsmith Извините, я перепутал OCI с OID, что вы подразумеваете под OCI? Экземпляр клиента Oracle? под силами OCI вы в основном подразумеваете, что он неявно использовал опубликованное вами решение и вычислил Oracle Home из моей среды (у меня нет %Oracle_Home% , я думаю, это из переменной среды %Path% или Registry ), и Я вижу разницу с show connection, теперь там написано ***@jdbc:oracle:oci8:****, я прав? - person LeY; 10.10.2018
comment
интерфейс вызова оракула, OCI, да - и jdbc:oracle:oci8 означает, что теперь вы используете sqlnet.ora для своих подключений - person thatjeffsmith; 10.10.2018