| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Ругает Connection to Oracle |
| Автор: KISha 16.10.2008, 12:55 |
| Народ помогите, при запуск ява код дает такую ошибку ---> java.sql.SQLException: NL Exception was generated в чем проблема? понятие не имею. установлен jdk 1.5, jdbc драйвер ojdbc5.jar и Oracle 9.2i PL/SQL работает. Помогите пожалуйста в чем причина ? |
| Автор: seth 16.10.2008, 13:23 | ||||
Гугл - первая сцылко: http://forums.oracle.com/forums/thread.jspa?messageID=2693825
т.е. должна быть ( перед DESCRIPTION в строке соединения |
| Автор: KISha 16.10.2008, 13:43 | ||
| Нет у меня проблема не в этом, я так пробовал! все равно ругает!
Добавлено @ 13:51 пробовал так con=DriverManager.getConnection("jdbc:oracle:thin:@iomm87:1521:mybase","user","123"); но витоге ругает так Error to connect !!!java.sql.SQLException: Исключение ввода/вывода: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=153093888)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4)))) |
| Автор: mbasil 16.10.2008, 14:08 | ||
Вынесите попытку подключения в отдельные блоки try... catch, чтобы быть точно уверенным, что проблема не в дальнейшем коде, а именно в механизме подключения. И попробуйте обработать исключение примерно так:
|
| Автор: seth 16.10.2008, 14:27 |
| Ну ошибка уже явно другая ;) меня еще ojdbc5.jar смущает - попробуйте с сайта оракла скачать что то типо classes12.jar |
| Автор: KISha 16.10.2008, 15:24 |
| Скачать драйвера для Oracle9i там дафига, например: Oracle9i 9.2.0.4 Oracle9i 9.2.0.3 Oracle9i 9.2.0.1 Oracle9i 9.2.0.5 и т.д какой драйвер из них мне подходящий тут понятие не имею, думаю у меня проблема из за такого бардака, может кто ни-будь скажет мне , какой из них мне подходят и как можно узнать подходящий драйвера? |
| Автор: mbasil 16.10.2008, 15:33 |
| classes12.jar это вообще старье. Проверил в документации ojdbc5.jar должен работать. |
| Автор: KISha 16.10.2008, 15:54 |
| mbasil у меня должно быть jdk1.2 или jdk1.3 для ojdbc5.jar? Добавлено через 2 минуты и 43 секунды Когда включаю classes12.jar дает такую ошибки Error to connect !!!java.sql.SQLException: недействительные аргументы в вызове |
| Автор: mbasil 16.10.2008, 15:59 | ||
Проблема скорее всего с сетью, LISTENER'ом или URL подключения |
| Автор: KISha 16.10.2008, 16:01 |
| еще уменя есть j2sdk1.4.2_01 это считается как jdk1.4? |
| Автор: mbasil 16.10.2008, 16:05 | ||
|
| Автор: KISha 16.10.2008, 16:07 |
| mbasil ты думаешь все это из за сеть ? С сеткам все ОК! |
| Автор: mbasil 16.10.2008, 16:16 |
| В ошибке сказано же - LISTENER не понимает SID : проверьте название экземпляра базы и его описание в процессе прослушивания. Кстати SID это не название базы, а название экземпляра, работающего с этой базой (у них могут быть разные названия). И вообще можно ли по этому адресу подключиться не из Java а с обычного клиента. Содержит ли файл LISTENER.ORA описание этого экземпляра и т.в. То есть дело не в драйвере. Проверьте файл listener.log на сервере |
| Автор: KISha 17.10.2008, 08:56 |
| у себя я не нашел listener.log файл а на сервере нет доступа! |
| Автор: mbasil 17.10.2008, 10:04 |
| Тогда надо вступить в диалог с администратором сервера. Сообщите ему об ORA-12505 покажите адрес : iomm87:1521:mybase скажите, что mybase это должен быть SID и попроcите проверить его правильность. |
| Автор: KISha 17.10.2008, 12:39 |
| Они сказали iomm87:1521:mybase правильно. У меня еще одна не понятное вещь, когда я убираю ТНС файл из папки ..\ora92\network\ADMIN все равно могу зайти в Developer (PL/SQL) т.е без ТНС файлом и тут совсем не понятно! Добавлено через 1 минуту и 8 секунд теперь, что мне сделать ? |
| Автор: mbasil 17.10.2008, 13:19 | ||||||
| Что касается Developer (PL/SQL) у него могут быть свои сетевые настройки. Вторая возможность у вас в файле sqlnet.ora картина, отличающаяся от следующей:
то есть не используется файл TNSNAMES. Однако все это не должно никак влиять на Java приложение. По косвенной информации можно понять, что у вас стоит клиент, который может подключаться к серверу. Очевидно это клиент под Windows? Запустите sqlplusw и попробуйте подключиться из него. Или используйте утилиту
Где xxx ссылка на вход в TNSNAMES, вспомните ваш код
Кстати на всякий случай уберите фразу (SERVER = DEDICATED). Если у вас IP адреса статические можно использовать вместо имени хоста IP адрес. Но, вообще говоря все это для меня пока остается загадкой. Если клиент с этой машины и с использованием этого адреса коннектится, то и Java приложение тоже должно. |
| Автор: KISha 17.10.2008, 14:12 |
| убрал (SERVER = DEDICATED) и место хоста поль-ся IP адрес все ровно регает java.sql.SQLException: Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor Не ужели не получается, не думал что так случиться, вот почему большинство программистов не исполь-ся Java, для новичков как я это как геморой, если честно я устал от такого мелочи. сделал то что смог! Надо было заняться с С#! тогда не будет ни каких проблем! Спасибо васем за помощь! |
| Автор: mbasil 17.10.2008, 14:34 |
| Не сдавайтесь, это лишь досадная препона, которую вы должны победить. .NET не наше решение ! Вы проверили, обычный клиент подключается? Кроме того, за умение решать такие проблемы нам и платят зар.плату! |
| Автор: KISha 17.10.2008, 17:27 |
| Спасибо за моральную потдержку, я не сдаюсь, но что же мне сделать если ни чего не получится? да .NET не наш стиль, Когда я в первые раз пробовал на Access -е все было как в сказке, но с Оракл-ом почему-то не везъет.Сейчась я на www.oracle.com и там обсуждаем! |
| Автор: mbasil 17.10.2008, 20:00 |
| Oracle это весьма "крутая" система. Первое своё серьёзное приложение я писал вслепую и только после того, как (по настоянию руководства) начал читать курсы по администрированию Oracle, я начал кое-что понимать (хочу отметить: кое-что). Существует негласный некий "мейнстрим" и его следует придерживаться (именно негласный). Народ спорит доказывает ту или иную правоту. Ищите "мейнстрим" и не ошибётесь. На сегодня "мейнстрим" это Oracle + JEE (пусть не ругают меня поборники других технологий, я вовсе не отрицаю их, а лишь говорю о "мейнстриме" в разработке технологий). Чтобы научиться писать СИСТЕМЫ на Oracle требуются годы, но это окупается. Ваша проблема, скорее всего очень проста, но её трудно "ухватить за хвост". решите проблему подключения и дальше все пойдет проще. К сожалению такую проблему трудно решать удалённым образом. |