JDBC - Не удается подключиться к Oracle, используя имя службы

Я пытался подключиться к этой базе данных Oracle с помощью тонкого драйвера JDBC со следующим синтаксисом:

var URL = "jdbc:oracle:thin:@//16.161.286.56:1522/Service_Name"; 
var USER = "user";
var PASS = "password";
var conn = Jdbc.getConnection(URL, USER, PASS);

Я продолжаю получать тот же ответ, когда я выполняю это:

К сожалению, произошла ошибка сервера. Пожалуйста, подождите немного и попробуйте снова. [87a99af]

Кто-нибудь может понять, что я делаю неправильно?


Кроме того, когда я меняю IP-адрес на его "строковую версию":

var URL = "jdbc:oracle:thin:@//mydomain.com:1522/Service_Name";

Тогда я получаю ответ об ошибке:

Не удалось установить соединение с базой данных. Проверьте строку подключения, имя пользователя и пароль.

Что не имеет смысла для меня, так как оба выражения должны быть эквивалентны...

3 ответа

Фактический формат соединения JDBC Oracle с использованием имени службы:

@//host_name:port_number/service_name

Убедитесь, что это имя службы в порядке. Вы можете попробовать с TNSNameListener

jdbc:oracle:thin:@(description=(address=(host=<HOSTADDRESS>)(protocol=tcp)(port=<PORT>))(connect_data=(service_name=<SERVICENAME>)(server=<SHARED>)))

Расположение файла TNSNameListener:

<ORACLE_HOME>\network\admin\tnsnames.ora
example: /home/oracle/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora

Я не уверен, какой класс это Jdbc. Взгляните на JDBCUrlSample.java и DataSourceSample.java.

Использовать это:

jdbc:oracle:thin:@//имяхоста:1521/ServiceName

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