#oracle #jdeveloper #tnsnames
#Oracle #jdeveloper #tnsnames
Вопрос:
Я использую Oracle JDeveloper 11.1.1.4.0, и я могу создавать подключения к базе данных (с типом Oracle (JDBC)
) с помощью thin
драйвера без каких-либо проблем, если я указываю хост.
Например, я могу подключиться к локальной базе данных Oracle XE, указав:
Driver: thin
Host Name: localhost
JDBC Port: 1521
Service Name: XE
Для подключения к удаленным базам данных я использую TNS, и мой tnsnames.ora
файл настроен следующим образом, где MYDATABASE.EXAMPLE.COM
указан идентификатор службы Oracle, который я хочу использовать.
MYDATABASE.EXAMPLE.COM=
(DESCRIPTION=
(ADDRESS=
(PROTOCOL=TCP)
(HOST=testdb.example.com)
(PORT=1234)
)
(CONNECT_DATA=
(SERVICE_NAME=MYDATABASE.example.com)
)
)
Подключения к MYDATABASE.EXAMPLE.COM
службе работают с SQL Developer, SQL Plus, TNSPING и т.д. С этого компьютера, Но я не могу найти способ указать это в подключении к базе данных JDeveloper без принудительного указания хоста.
Причина, по которой я не хочу указывать хост, та же, по которой мы используем TNS в первую очередь — testdb.example.com
хост будет меняться со временем, но MYDATABASE.EXAMPLE.COM
идентификатор службы TNS — нет.
Если я укажу хост testdb.example.com
вместе с правильным псевдонимом TNS, соединение сработает. Если я укажу неправильный идентификатор, произойдет сбой — он определенно осведомлен о содержимом моего файла tnsnames.ora.
Сообщения, подобные этому, похоже, предполагают, что если JDeveloper знает о TNS_ADMIN, он будет использовать tnsnames.ora
, но даже использование «Введите пользовательский URL JDBC» не работает, используя строку типа:
jdbc:oracle:thin:MYDATABASE.EXAMPLE.COM
По-прежнему выдает ошибку «Пожалуйста, введите допустимое значение для имени хоста».
Кто-нибудь знает, как создать подключение к базе данных в JDeveloper без указания хоста?
Ответ №1:
Согласно руководству разработчика Oracle JDBC, вам необходимо указать местоположение файла tnsnames.ora через системное свойство (JVM), чтобы иметь возможность использовать tnsnames с драйвером thin:
http://download.oracle.com/docs/cd/B28359_01/java.111/b31224/urls.htm#BEIDIJCE
Вам нужно будет запустить SQL Developer таким образом, чтобы было определено системное свойство oracle.net.tns_admin
.
Добавление
AddVMOption -Doracle.net.tns_admin=/path/to/tnsnames.ora
для ide.conf должно сработать (хотя я этого не пробовал).