Squeak.ru - шаблоны программирования

Сетевому адаптеру не удалось установить соединение — Oracle 11g

Я написал программу-сервлет и хочу, чтобы она подключалась к моей базе данных Oracle, но выдает ошибку. Я использую Eclipse Helios, Tomcat 6.0.37, Oracle 11g (11.2.0.1.0), ojdbc6.jar (добавлен в конфигурацию запуска проекта сервера). Я могу подключиться к базе данных через интерфейс SQL Plus и даже могу установить соединение с точки зрения разработки базы данных Eclipse. Но когда я пытаюсь подключиться через свой сервлет, я получаю сообщение об ошибке. Для моего сервлета я использую номер порта 9090, а для базы данных по умолчанию 1521.

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.android.collegenotificationsystem.RegistrationServlet.doGet(RegistrationServlet.java:43)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Unknown Source)
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)
    ... 21 more
Caused by: java.net.ConnectException: Connection refused: connect
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
    at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
    at java.net.AbstractPlainSocketImpl.connect(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)
    ... 26 more

Это мой код для установления соединения:

Class.forName("oracle.jdbc.OracleDriver"); Connection con = (Connection) DriverManager.getConnection( "jdbc:oracle:thin:@localhost:1521:orcl","username","password");

Я попытался выполнить команду lsnrctl stat, и вот результат:

LSNRCTL for 32-bit Windows: Version 11.2.0.1.0 - Production on 03-AUG-2013 16:08
:46

Copyright (c) 1991, 2010, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for 32-bit Windows: Version 11.2.0.1.0 - Produ
ction
Start Date                03-AUG-2013 12:14:19
Uptime                    0 days 3 hr. 54 min. 28 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   C:\app\Owner\product\11.2.0\dbhome_1\network\admin\lis
tener.ora
Listener Log File         c:\app\owner\diag\tnslsnr\Owner-PC\listener\alert\log.
xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
Services Summary...
Service "CLRExtProc" has 1 instance(s).
  Instance "CLRExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "orcl.168.1.56" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
Service "orclXDB.168.1.56" has 1 instance(s).
  Instance "orcl", status READY, has 1 handler(s) for this service...
The command completed successfully

Это содержимое моего файла tnsnames.ora:

LISTENER_ORCL =
  (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))


ORACLR_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
    (CONNECT_DATA =
      (SID = CLRExtProc)
      (PRESENTATION = RO)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl.168.1.56)
    )
  )

Любая помощь будет оценена по достоинству. Заранее спасибо.


  • Можете ли вы сообщить нам информацию о подключении, которую вы используете в eclipse для подключения к этому экземпляру базы данных? Скриншот параметров подключения определенно поможет 11.09.2013
  • Я должен задать очевидный вопрос: работает ли сервлет на той же машине, что и БД Oracle? 16.07.2014

Ответы:


1

У меня была аналогичная проблема. это разрешено для меня с помощью простой команды.

lsnrctl start

Исключение сетевого адаптера вызвано тем, что:

  1. Неверное имя хоста базы данных или номер порта (ИЛИ)
  2. База данных TNSListener не запущена. TNSListener можно запустить с помощью утилиты lsnrctl.

Попробуйте запустить прослушиватель с помощью командной строки:

  1. Нажмите «Пуск», введите cmd в поле поиска, и когда cmd появится в списке параметров, щелкните его правой кнопкой мыши и выберите «Запуск от имени администратора».
  2. В окне командной строки введите lsnrctl start без кавычек и нажмите Enter.
  3. Введите Exit и нажмите Enter.

Надеюсь, поможет.

28.12.2013
  • Вы видели вывод lsnrctl status, который опубликовал Эш? 28.12.2013
  • А на macOS? Я получаю lsnrctl: command not found 05.07.2018

  • 2

    Сначала проверьте, включен или выключен ваш слушатель. Перейдите в сетевой менеджер, затем «Локальный» -> «Именование службы» -> «orcl». Затем измените ИМЯ ХОСТА и укажите имя своего ПК. Теперь перейдите в LISTENER и измените HOST и введите имя вашего ПК.

    11.02.2014
  • Я ищу почти весь этот Интернет! Но это решило мою проблему. +1 Кстати, это hostname должно быть именем ПК? или это просто условность или что-то в этом роде? 05.03.2015
  • имя хоста должно отличаться от имени ПК. 05.10.2015
  • Новые материалы

    Угловая структура архитектуры
    Обратите внимание, что эта статья устарела, я решил создать новую с лучшей структурой и с учетом автономных компонентов: https://medium.com/@marekpanti/angular-standalone-architecture-b645edd0d54a..

    «Данные, которые большинство людей используют для обучения своих моделей искусственного интеллекта, поставляются со встроенным…
    Первоначально опубликовано HalkTalks: https://hacktown.com.br/blog/blog/os-dados-que-a-maioria-das-pessoas-usa-para-treinar-seus-modelos-de-inteligencia-artificial- ja-vem-com-um-vies-embutido/..

    Сильный ИИ против слабого ИИ: различия парадигм искусственного интеллекта
    В последние годы изучению и развитию искусственного интеллекта (ИИ) уделяется большое внимание и прогресс. Сильный ИИ и Слабый ИИ — две основные парадигмы в области искусственного интеллекта...

    Правильный способ добавить Firebase в ваш проект React с помощью React Hooks
    React + Firebase - это мощная комбинация для быстрого и безопасного создания приложений, от проверки концепции до массового производства. Раньше (знаете, несколько месяцев назад) добавление..

    Создайте API с помощью Python FastAPI
    Создание API с помощью Python становится очень простым при использовании пакета FastAPI. После установки и импорта вы можете создать приложение FastAPI и указать несколько конечных точек. Каждой..

    Веселье с прокси-сервером JavaScript
    Прокси-серверы JavaScript — это чистый сахар, если вы хотите создать некоторую общую логику в своих приложениях, чтобы облегчить себе жизнь. Вот один пример: Связь клиент-сервер Мы..

    Получить бесплатный хостинг для разработчиков | Разместите свой сайт за несколько шагов 🔥
    Статические веб-сайты — это веб-страницы с фиксированным содержанием и его постоянным содержанием. Но теперь статические сайты также обрабатывают динамические данные с помощью API и запросов...