Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ошибка при подключении к Oracle 
V
    Опции темы
XEugene
Дата 12.1.2008, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 116
Регистрация: 1.1.2008

Репутация: нет
Всего: 2



Драйвер ojdbc14_g.jar.

Код такой
Код

      Connection connection = null;
      Statement statement = null;
      ResultSet resultset = null;

      try {
          Class.forName("oracle.jdbc.OracleDriver");
          String url = "jdbc:oracle:thin:@127.0.0.1:1521:ORCL";
          connection = DriverManager.getConnection(url, "SYSTEM", "mypassword");
          statement = connection.createStatement();
          resultset = statement.executeQuery("SELECT * FROM dual");
          while (resultset.next()) {
               out.println(resultset.getString("dummy") + "<br>");
          }
          resultset.close();
          statement.close();
          connection.close();

      } catch (SQLException ex) {
           ex.printStackTrace();
      } 




Стектрейс иксепшена
Код

java.sql.SQLException: Исключение ввода/вывода: The Network Adapter could not establish the connection
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:158)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:206)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:382)
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:333)
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:371)
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:148)
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:572)
    at java.sql.DriverManager.getConnection(DriverManager.java:525)
    at java.sql.DriverManager.getConnection(DriverManager.java:171)
    at org.apache.jsp.index_jsp._jspService(index_jsp.java:57)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    at java.lang.Thread.run(Thread.java:595)




Пепвоначально пытался приконнектиться с помощью Hibernate,  ругалось на маппинг,  хотя дело было явно не в нём.
Решил проверить как вообще с коннектом с таким драйвером и такими параметрами,  и вот...


Oracle 10g,  бесплатная версия.  
SQL*Plus к ораклу коннектится нормально.

Веб-сервер Томкат(подключаюсь из jsp).

 

Это сообщение отредактировал(а) XEugene - 13.1.2008, 03:29
PM MAIL   Вверх
XEugene
Дата 12.1.2008, 23:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 116
Регистрация: 1.1.2008

Репутация: нет
Всего: 2



Сейчас подумал - может быть не хватает какого-то оракловского сервиса для коннекта из стороннего приложения.

У меня был запущен только OracleServiceORCL.

Сейчас запустил все службы, кроме двух.  Не удалось запустить OracleCSService и  OracleOraDb10g_home1TNSListener.
При запуске  OracleOraDb10g_home1TNSListener выдается ошибка "Не найден указанный файл".
Эти службы нужны для коннекта через JDBC?

Для работы с SQL*Plus хватает OracleServiceORCL.
PM MAIL   Вверх
v2v
Дата 13.1.2008, 01:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1620
Регистрация: 20.9.2006
Где: Киев

Репутация: 8
Всего: 56



вроде ты не первый с такой проблемой.
почитай тут и тут если не поможет , тогда тут

Это сообщение отредактировал(а) v2v - 13.1.2008, 01:46


--------------------
PM   Вверх
batigoal
Дата 13.1.2008, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



Вообще, лисенер - это тот самый процесс, который и нужен для установления соединения. Но раз ты нормально коннектишься через SQL Plus - наверное, проблема не в нём (хотя я не знаю, задействует ли SQLPlus лисенер в случае локалхоста).

Попробуй подключиться удаленно к своей базе через SQLPlus. Если не получится - проблема, скорее всего, в лисенере.

Это сообщение отредактировал(а) batigoal - 13.1.2008, 12:05


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
XEugene
Дата 13.1.2008, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 116
Регистрация: 1.1.2008

Репутация: нет
Всего: 2



Я сейчас попробовал ввести в поле Host String формы для логина SQL*Plus IP-шник 127.0.0.1,   имитируя удаленное соединение.


SQL*PLus выдает  ошибку ORA-12541: TNS:no listener.


Так и есть -  у меня не установился сервис OracleOraDb10g_home1TNSListener.


Похоже,  поможет только переустановка Oracle.

Добавлено @ 18:40
Цитата(batigoal @  13.1.2008,  12:04 Найти цитируемый пост)
хотя я не знаю, задействует ли SQLPlus лисенер в случае локалхоста
Судя по результату эксперимента не задействует,  если не указать хост явно.   Я прежде всегда коннектился с пустым полем Host String и проблем не было.


Это сообщение отредактировал(а) XEugene - 13.1.2008, 18:41
PM MAIL   Вверх
LSD
Дата 13.1.2008, 20:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Без TNSListener никто не может соединиться с Oracle.

Цитата(XEugene @  13.1.2008,  18:37 Найти цитируемый пост)
Я сейчас попробовал ввести в поле Host String формы для логина SQL*Plus IP-шник 127.0.0.1,   имитируя удаленное соединение.

SQL*Plus запрашивает не имя хоста, а имя сервиса прописанное в конфигурации Net8.

В твоём коде ошибка, ты используешь URL thin драйвера, а загружаешь Oci8 драйвер.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
ivg
Дата 13.1.2008, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Autonomous R&D
**


Профиль
Группа: Участник
Сообщений: 686
Регистрация: 8.2.2006
Где: Екатеринбург

Репутация: 33
Всего: 81



Цитата(LSD @  13.1.2008,  20:06 Найти цитируемый пост)
а загружаешь Oci8 драйвер

Извините за offtopic, но как вы это определили? Объясните, пожалуйста.
PM MAIL   Вверх
LSD
Дата 13.1.2008, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



По имени драйвера oracle.jdbc.OracleDriver - это Oci8, а oracle.jdbc.drive.OracleDriver - thin.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
ivg
Дата 13.1.2008, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Autonomous R&D
**


Профиль
Группа: Участник
Сообщений: 686
Регистрация: 8.2.2006
Где: Екатеринбург

Репутация: 33
Всего: 81



Цитата(LSD @  13.1.2008,  20:53 Найти цитируемый пост)
По имени драйвера oracle.jdbc.OracleDriver - это Oci8, а oracle.jdbc.drive.OracleDriver - thin. 

Не берусь утверждать со 100% уверенностью, но это не так, на самом деле, oracle.jdbc.OracleDriver является просто наследником класса oracle.jdbc.driver.OracleDriver, и добавляет несколько статических методов, по идее, особой разницы нет, какой именно класс указывать для DriverManager. Ну а наличие класса oracle.jdbc.OracleDriver объясняется, видимо тем, что это как бы "публичный" класс, а то что находится в пакете oracle.jdbc.driver - это как бы уже конкретная реализация драйвера от Oracle. То есть, всё таки тип драйвера (thin или oci) определяется только url'ом. (ну и конечно к oci ещё соответствующая нативная библиотека нужна).
Может, то что вы говорите как то раньше было? Или я, всё таки, не прав?

Это сообщение отредактировал(а) ivg - 13.1.2008, 21:31
PM MAIL   Вверх
batigoal
Дата 13.1.2008, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



На самом деле, я тоже считал, что выбор драйвера определяется URL'ом, да и в приложениях своих использовал oracle.jdbc.OracleDriver...


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
LSD
Дата 13.1.2008, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



На девятке так было. Хотя судя по тем примерам что сейчас даёт Oracle, все действительно определяется URL-ом.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
XEugene
Дата 14.1.2008, 01:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 116
Регистрация: 1.1.2008

Репутация: нет
Всего: 2



Цитата(LSD @  13.1.2008,  20:53 Найти цитируемый пост)
 oracle.jdbc.driver.OracleDriver
Я пробовал и так.  

Цитата(LSD @  13.1.2008,  20:06 Найти цитируемый пост)
а имя сервиса прописанное в конфигурации Net8
Странно,  а почему поле называется Host String?


В общем опишу ситуацию касательно TNSListener`а. 
Однажды я пытался установить среду разработки для Оракла,  пробовал PL/SQL Developer и что-то ещё.
Соединиться с Ораклом эти программы не смогли,  и в сообщении об ошибке говорилось именно об отсутствии TNS listener.

Если заглянуть в сервисы Windows,  то там есть сервис OracleOraDb10g_home1TNSListener,  он не запущен и при попытке его запустить выдается ошибка: "Не удается запустить службу,  не найден указанный файл".




     
Цитата(LSD @  13.1.2008,  20:06 Найти цитируемый пост)
Без TNSListener никто не может соединиться с Oracle
Может в десятке что-то изменилось?




Это сообщение отредактировал(а) XEugene - 14.1.2008, 01:30
PM MAIL   Вверх
tux
Дата 14.1.2008, 01:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Летатель
***


Профиль
Группа: Участник Клуба
Сообщений: 1853
Регистрация: 10.2.2005
Где: msk.ru

Репутация: 31
Всего: 132



Цитата(XEugene @  14.1.2008,  01:09 Найти цитируемый пост)
Может в десятке что-то изменилось?

Не изменилось.
PM MAIL Skype GTalk Jabber YIM   Вверх
XEugene
Дата 14.1.2008, 01:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 116
Регистрация: 1.1.2008

Репутация: нет
Всего: 2



По второй ссылке,  приведённой v2v,  прочитал следующее
Цитата
To verify whether you are hitting this problem, verify whether the Oracle instance is configured for Multithreaded Server (MTS). If the Oracle instance is not configured for MTS, you are probably encountering a different problem.
 Не тут ли собака порылась?

Добавлено через 5 минут и 47 секунд
То есть может быть у меня Oracle не сконфигурирован как Multithreaded Server и это ошибочно воспринимается как отсутствие TNS Listener`а?



PM MAIL   Вверх
batigoal
Дата 14.1.2008, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



Вообще, лисенер можно через GUI Ораклового клиента создать...


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0927 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.