Re: MSSQL2000+JDBC

andrey3456

Вылетает при подключении к серверу
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
Как с этим бороться?

anton7805

хост и порт посмотри внимательнее, по умолчанию порт 1433

andrey3456

С хостом и портом все нормально, подобная проблема описывается в инете. Там все упиралось в firewall(у меня XP SP2 но у меня он выключен . Пытался подключится к этому порту через терминал, ничего не вышло. И в списке открытых портов его нет. Query analyzer соединяется спокойно...

psm-home

Query Analyzer может ходить через другой транспорт (Named Pipes). Server network Utility в списке включенных протоколов что показывает? Там должен быть TCP/IP.

andrey3456

Да, там есть TCP/IP и namedPipes. Я и порты менял и выключал-включал протокол, все равно не работает

andrey3456

И в реестре смотрел соответсвие, там все в порядке...

psm-home

На всякий случай. Сервиспак накачен самый свежий (SP4 вроде как последняя версия)?

saveliev_a

Это самый правильный вопрос! SQL не слушает на TCP порту, если не установлен SP3 или SP4 на MSSQL. Ищи в сетке файл sql2000-kb884525-sp4-x86-enu.exe и устанавливай.

psm-home

Точно! Мой коллега, большой не любитель ставить свежие SP, как-то раз так попадал.

Nikitin

У меня аналогичная проблема, с небольшим отличием:
Из классов на сервере приложений соединение происходит нормально, из апплетов нет.
Это исправляемо?
Сервис паки новые, конфигурация SQL Servera правильная и порт 1433 по TCP слушается.
На самом деле могу отказаться от SQLServer в пользу другой БД. Может есть какая-то, где этой проблемы уж точно не будет, и которую поддреживают драйверы jdbc?

ava3443

SQL не слушает на TCP порту, если не установлен SP3 или SP4 на MSSQL.
это как? а чего делали пока не вышел SP3?

psm-home

Из классов на сервере приложений соединение происходит нормально, из апплетов нет.

Покажи stacktrace или хоть какой-нибудь текст ошибки. В телепатическом режиме могу предварительно предположить, что проблема с security policy. Там должны быть ограничения на открытие сетевых соединений из апплета.

ava3443

На самом деле могу отказаться от SQLServer в пользу другой БД.
ставь Informix, не прогадаешь

Nikitin

Ошибка
Error establishing socket 08001
Stack trace сопадает с тем что во здесь http://www.sql.ru/forum/actualthread.aspx?tid=345244
Насколько я понимаю, если бы проблема была с безопасностью аплета, то ошибка возникла бы сразу при запуске метода DriverManager.getConnection.
А так он попытался подключиьтся, но не смог.
Зато код, скопированный из аплета в сервлет, соединяет с sqlserver замечательно (это и настораживает больше всего). Аплет подписан без ограничений
Кроме того, аплет нормально коннектится к sql, установленной на локальной машине. Проблемы возникают на удаленной машине.
Что такое "сетевых соединений из апплета"? Если ты об этом свойстве в Enterprise Manager: "Maximum concurrent connections", то стоит unlimit.
Так, что еще..
Через telnet по удаленке тоже нормально подключается.
Порт 1433 по TCP/IP слушается...

psm-home

Да уж. Непростой случай. Могу предложить варианты:
1). Проверить, что можно из апплета открыть соединение на удаленную машину, где стоит MS SQL (временно в апплет добавить маленький кусочек кода, который, скажем, стягивает файлик с http сервера на той машине, ну или что-то наподобие).
2). Установить на машине где выполняется апплет что-то вроде Etherial и посмотреть, что происходит при попытке установить соединение на уровне пакетов.

Vantucha

если я ничего не путаю, по умолчанию апплеты имеют право соединяться только с севером, с которого они загружены

Nikitin

 

Да уж. Непростой случай. Могу предложить варианты:
1). Проверить, что можно из апплета открыть соединение на удаленную машину, где стоит MS SQL (временно в апплет добавить маленький кусочек кода, который, скажем, стягивает файлик с http сервера на той машине, ну или что-то наподобие).
2). Установить на машине где выполняется апплет что-то вроде Etherial и посмотреть, что происходит при попытке установить соединение на уровне пакетов.
 

Можно поподробнее...
И еще про SecurityPolicy, как, что и где прописывать?

Nikitin

если я ничего не путаю, по умолчанию апплеты имеют право соединяться только с севером, с которого они загружены
Нет, я соединялся так с удаленным сервером. Достаточно простой подписи аплета.
Тут дело именно во взаимодействии с SQLServer

Sanjaz

И я пожалуюсь на жизнь тоже.
Из приклада не могу вызвать хранимую процедуру. Никаких ошибок нет. Просто процедура не исполняется. Хотя если вызвать ее из QueryAnalizer, то она заработает. В обоих случаях логинился под одним и темже пользователем. В чем разница?

Sanjaz

стоит sp3.

Sanjaz

Разобрался. Надо было делать commit.
Оставить комментарий
Имя или ник:
Комментарий: