Страница 1 из 1
Timeout expired
Добавлено: 01 Май 2010, 2:00
WadimZapara
Приложение (на C55ee) осуществляет подключение к MSSQL-серверу.
Сеть разнопроизводительная. Где нормальное соединение - вопросов нет. А кое-где пинг выдаёт 3-4-значные цифры по времени доступа.
Так вот на этих "кое-где" - не подключается, а выдаёт ошибку SQLState = 'S1T00' и далее от MS ODBS, что таймаут кончился. Проходит примерно 5 секунд.
Не могу понять, делаю тест: при попытке подключения с неверными логином или паролем ошибка, выдаваемая FileError(), конкретно гласит неверные логин или пароль, при ошибочном задании сервера - тоже нормальный результат: типа сервер не доступен, при ошибке имени базы данных - нормально диагностируется. Но при всех верных параметрах - НЕТ ПОДКЛЮЧЕНИЯ, ТАЙМАУТ КОНЧИЛСЯ !
Кто сталкивался ? Как победил ?
Подключаюсь типа:
Код: Выделить всё
MSSQLFile{PROP:LogonScreen} = 0
MSSQLFile{PROP:LoginTimeout} = 30
MSSQLFile{PROP:Owner} = '192.168.111.111,database_name,user_name,password;APP=ИмяПриложения'
Open(MSSQLFile, 42h)
IF ErrorCode()=90 Then Message(Clip(FileError())).
! ВОТ ТУТ-ТО ПРИМЕРНО ЧЕРЕЗ 5 СЕКУНД МНЕ И ГОВОРЯТ, ЧТОБЫ Я ШЁЛ НА... ПОТОМУ ЧТО ТАЙМАУТ КОНЧИЛСЯ
Танцев с бубном было много. Помогите ! (odbcping - тот же результат)
Re: Timeout expired
Добавлено: 01 Май 2010, 17:54
Tuko_G
по моему здесь нет проблема с вашим кодом а к самому в настройках MSSQL сервера
попробуй сделать connect через (Administrative Tools -> Data Source(ODBC) ) и там будет видно вообще доступно ли тот сервер.
(может быть порт для mssql сервера не конфигурированно так как надо )
c уважением Tuko_G
Re: Timeout expired
Добавлено: 01 Май 2010, 18:08
BOB
Возможно нет коннекта к самому серверу , что-то подобное у меня было на некоторых машинах . Вышел с помощью подключения любого диска с сервера до запуска программы .
Re: Timeout expired
Добавлено: 02 Май 2010, 12:33
WadimZapara
Tuko_G писал(а):через (Administrative Tools -> Data Source(ODBC) )
- та же проблема (я писал, что и через odbcping результат тот же), в коде-то я не сомневался, привёл его, чтобы избежать совета по проверке кода.
BOB писал(а):нет коннекта к самому серверу
- А как же с получаемым ответом, что неправильный логин/пароль - когда они неправильны?
Чувствую, что проблема в клиентских тачках (WinXP) - может кривизна в MDAC ?
Или в сети - но тогда не знаю где... поиск в интернете не помог (может читать разучился

)
прописал (на всякий случай) в lmhosts клиента имя и IP MSSQL-сервера. Безрезультатно.
Проблема ПРИ ПЛОХОЙ ПРОПУСКНОЙ СПОСОБНОСТИ СЕТИ. Но почему и как исправить?
(Насчёт подключения диска - попробую.)
Re: Timeout expired
Добавлено: 02 Май 2010, 14:29
BOB
В моем случае была современная сеть и ооооочень древний компьютер клиента . Думаю была несовместимость железа . Клаша хочет быстрой регистрации , а я не админ и сети не знаю , но решил что регистрация на сервере происходит при первом обращении и отделил регистрацию от клаши подключением диска . Как ни странно до сих пор работает (года два как). Но на этой сети регистрироваться на sql сервере было не надо .
Re: Timeout expired
Добавлено: 04 Май 2010, 17:09
Tuko_G
посмотри SQL Server Configuration Manager -> Protocols for MSSQL SERVER -> TCP/IP -> Properties -> IP Address , TCP Dinamic Ports отключить и TCP Port = 1433
должен работать
с уважением Tuko_G
Re: Timeout expired
Добавлено: 06 Май 2010, 0:09
WadimZapara
отделил регистрацию от клаши подключением диска
Представьте моё удивление: NET VIEW IP_адрес, так же как и NET USE - даёт с той тачки ошибку 64 - сетевое имя более недоступно.
Теперь ясно, что проблема где-то в системном сетевом ПО (или в вирусе). Казалось бы XP-шка...
Re: Timeout expired
Добавлено: 07 Май 2010, 4:00
BOB
Танцев с бубном было много
ООО, уважаемый , если Ваш админ так танцует , то я скажу первую попавшуюся причину и она будет верной .
У вас компы с одинаковым IP.

Re: Timeout expired
Добавлено: 08 Май 2010, 0:48
WadimZapara
BOB писал(а):ООО, уважаемый , если Ваш админ так танцует , то я скажу первую попавшуюся причину и она будет верной .
У вас компы с одинаковым IP.

Уважаемый Боб, Вы не правы.
1) организация сети в нашей организации более-менее нормальная со стороны админов.
2) пользователи недостаточно продвинуты, чтобы самостоятельно изменять статический IP-адрес.
3) Динамическая адресация используется в одном (достаточно крупном подразделении), но там проблем не возникало.
4) PING срабатывает безошибочно.
5) Операционка не сообщает о конфликте адресов.
Танцами с бубнами явились попытки изменения параметров реестра на клиентской тачке, MSSQL-сервера, направленные на увеличение таймаута для процесса "залогинивания" на MSSQL-сервер.
В настоящий момент на клиентской тачке обнаружен и пока не вылечен вирус "csrcs.exe" и ещё пара. Но клиентская тачка находится на удалении примерно 100 км от центрального офиса и пинг, как я писал выше, показывает временные интервалы от 120 до 3120 мс, то есть представьте себе, как удалённо с ним работать. Привезут комп после праздников, 12.05. Исследуем, вылечим или переставим систему, 13-14.05 он будет на своём месте, тогда всё и станет на свои места, может быть...

Re: Timeout expired
Добавлено: 20 Ноябрь 2010, 2:21
WadimZapara
вирусняк не при чём.
-- как показало исследование - просто плохое сетевое соединение
MSSQL относится к этому критично!
после замены аппаратуры, соответствующих наездов на владельца канала - всё пришло в норму
Re: Timeout expired
Добавлено: 21 Ноябрь 2010, 15:57
morkovin
WadimZapara писал(а):Приложение (на C55ee) осуществляет подключение к MSSQL-серверу.
Сеть разнопроизводительная. Где нормальное соединение - вопросов нет. А кое-где пинг выдаёт 3-4-значные цифры по времени доступа.
Где-то читал, что ping-запросы могут распознаваться сетевым оборудование и им назначается низкий приоритет.
Так вот на этих "кое-где" - не подключается, а выдаёт ошибку SQLState = 'S1T00' и далее от MS ODBS, что таймаут кончился. Проходит примерно 5 секунд.
У меня еще хуже - 40-45сек. Потом тайм-аут -кнопка ОК- и появляется обычное окно подключения-жмем ОК и юзер подключается через TrustedConn. Это началось после переинсталляции WinSer2008(накрылся винчестер). Из резервной копии "админам" востановить не удалось. Поэтому всех юзеров AD заводили вручную. Где-то недодали прав , т.к. с админскими правами логинится быстро. (Рабочие станции XPpro). Кое-где опечатались в имени юзера - в результате юзер, зарегистр в AD, не мог получить доступ к своим локальным файлам (NTFS)