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