Назад | Перейти на главную страницу

Как подключиться к серверу Oracle в Java?

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

Код JDBC

Class.forName(oracle.jdbc.driver.OracleDriver).newInstance();
conn=DriverManager.getConnection(jdbc:oracle:thin:@<IPaddress>:<SID>,userName,password);
conn.close();

Сообщение об ошибке

java.sql.SQLException: The Network Adapter could not establish the connection
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:412)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:531)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:221)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:503)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.wipro.sample.min.main(min.java:28)

    Caused by: oracle.net.ns.NetException: The Network Adapter could not establish the connection
   at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:359)
   at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:422)
   at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:672)
   at oracle.net.ns.NSProtocol.connect(NSProtocol.java:237)
   at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1042)
   at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:301)
   ... 7 more

    Caused by: java.net.ConnectException: Connection refused: connect
   at java.net.PlainSocketImpl.socketConnect(Native Method)
   at java.net.PlainSocketImpl.doConnect(Unknown Source)
   at java.net.PlainSocketImpl.connectToAddress(Unknown Source)
   at java.net.PlainSocketImpl.connect(Unknown Source)
   at java.net.SocksSocketImpl.connect(Unknown Source)
   at java.net.Socket.connect(Unknown Source)
   at oracle.net.nt.TcpNTAdapter.connect(TcpNTAdapter.java:141)
   at oracle.net.nt.ConnOption.connect(ConnOption.java:123)
   at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:337)
   ... 12 more

Похоже, сервер Oracle не слушает ...

Подключитесь к машине, на которой присутствует oracle ..

Бегать су - оракул

lsnrctl статус

список не активен, тогда сделайте lsnrctl start

Эта ошибка может возникнуть, если вы:

  1. Попробуйте подключиться к другому хосту: порту. Еще раз проверьте свои настройки.
  2. Сервер Oracle не работает. Вам нужно это запустить.
  3. Ваш брандмауэр блокирует ваше соединение с Oracle. Вам необходимо разрешить доступ для вашего приложения.

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

Пример: telnet <Oracle Serrver IP> 1521

Типичная сетевая установка Oracle состоит из:

  1. Экземпляр базы данных на сервере
  2. Как утверждает @Abhiram, «слушатель» также работает на сервере, ожидая соединений, по умолчанию на порту 1521.
  3. Клиенты подключаются к серверу через правильный порт, слушатель передает соединение с экземпляром базы данных.

Как указывали другие, (1) база данных должна быть запущена; (2) слушатель должен быть запущен, и вам нужно знать, какой порт; (3) брандмауэры должны быть настроены так, чтобы пропускать трафик через порт, чаще всего на стороне сервера.

Может ли ваш друг использовать ODBC-соединение в своей системе через слушателя (а не локальное соединение)? Другими словами, будет ли ваш код работать в их системе?

Ластовица сделать следующее:

  1. ping ip-адрес. Если время ожидания истекло, это означает, что возникла проблема с сетевым подключением.
  2. Если результат ping указывает на то, что соединение установлено, но по-прежнему возникает такое же исключение, выполните: используйте команду tracert Ip Address для доменного имени gat.
  3. используйте доменное имя вместо IP-адресов в строке подключения:

    conn=DriverManager.getConnection(jdbc:oracle:thin:@<IPaddress>:<SID>,userName,password);
    conn=DriverManager.getConnection(jdbc:oracle:thin:@<domain Name>:<SID>,userName,password);
    
  4. использовать DriverManager.registerDriver (new oracle.jdbc.OracleDriver()); вместо того Class.forName(oracle.jdbc.driver.OracleDriver).newInstance();