ошибка в соединении jdbc Java с Oracle11g - PullRequest
0 голосов
/ 15 марта 2012

Пожалуйста, помогите мне. Я установил Oracle 11.2.0 g на Windows 7 (32 bit), и я пытаюсь подключить базу данных с jdk 1.7 Я получаю сообщение об ошибке:

---exception
java.sql.SQLRecoverableException:IO Error: The Network Adapter could not establish the connection

ORACLE_HOME=E:\app\OraDhanya\product\11.2.0\dbhome_1

CLASSPATH=E:\app\OraDhanya\product\11.2.0\dbhome_1\jdbc\lib\*;C:\Program Files\Java\jdk1.7.0_03\bin

Path=E:\app\OraDhanya\product\11.2.0\dbhome_1\BIN;C:\Program Files\Java\jdk1.7.0_03\bin;

Global Database Name =orcldhamanoj.168.1.100
SID=orcldhaman

КОД:

try{
  DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
  System.out.println("Connecting to Database");

  Connection cn=DriverManager.getConnection("jdbc:oracle:thin:@orcldhamanoj:1521:orcldhaman","SCOTT","Tiger1");
  System.out.println("Connected to Database");

  Statement st=cn.createStatement();
  st.executeUpdate("create table User(UserID number(3), UserName varchar2(20));");
  System.out.println("Table Created");


  st.close();
  cn.close();
}
catch (SQLException e)
{ 
   System.out.println("exception"+e); 
}

Ответы [ 3 ]

1 голос
/ 15 марта 2012

Ошибка не имеет ничего общего с JDBC, это ошибка низкого уровня, которая говорит о том, что сетевой уровень не может установить соединение с машиной, на которой работает сервер Oracle. Причин может быть несколько:

  • Неправильные параметры соединения (ip / имя хоста / порт). Это, наверное, самая частая причина. Проверьте ip / hostname, используя ping, и порт, используя команду "telnet [ip / hostname] port";
  • Что-то не так с вашей сетью, например, проблема с кабелем или неправильные настройки сети.
0 голосов
/ 15 марта 2012

Я бы предположил, что следующие ошибки могут быть причиной такого рода ошибок:

  1. (очевидно) IP-адрес неверен - попробуйте PING
  2. Порт не открыт или заблокированс помощью брандмауэра - попробуйте TELNET
  3. Слушатель БД не работает или привязан к другому сетевому интерфейсу - опять же, TELNET должен подтвердить это (также используйте для подключения средства клиента Oracle)
  4. Нет локальногопорты доступны для исходящего соединения (маловероятно) - только если вы делаете тысячи соединений или создаете сотни новых соединений каждую минуту.
0 голосов
/ 15 марта 2012

В методе DriverManager.getConnection убедитесь, что вы указали IP-адрес компьютера, на котором работает Oracle - или localhost, если это ваш текущий компьютер.

DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcldhaman","SCOTT","Tiger1");
                                           // ^^^^^^^^^ <-- Or this could be an IP address
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...