Форум » [x]Harbour » Обрыв соединения на SHARED диске ? » Ответить

Обрыв соединения на SHARED диске ?

Andrey: Имею заказчика. У него странная ситуация с моей программой. Сеть из двух компов, сервер (на нем расшаренная папка) и локальная станция. Компы современные, на Win10x64bit Но прога на МиниГуи (Харбор последний) в течении дня несколько раз виснет глухо и всё. Раз 8 за день. Помогает только снятие из диспетчера задач. Соответственно когда прога повисла - из-за чего непонятно, в лог ничего не пишется. Сегодня отловил причину. Кратковременная потеря сетевого соединения ! Вот что в логе: [pre2]Time from start: 0 days 1 hours 32 mins 28 secs Error DBFCDX/1010 Ошибка чтения: \\SERVER\Sklad4.Server\COMMON\NETOPER.DBF (DOS Error 2) --------------------------------- Stack Trace --------------------------------- Called from DBGOTOP(0) [/pre2] Как с этим боротся ? Хотя бы сообщение об ошибки сети получить можно ? Есть ли какие функции для сети. Пробовал при ВИСЯЧЕЙ проге открыть сеть через Проводник, сетевой ресурс открывается. А программа висит... У других моих пользователей таких проблем НЕТ вообще...

Ответов - 53, стр: 1 2 3 All

PSP: Индексы не пробовал пересоздать?

Andrey: При чем тут индексы. Открыты все базы при старте программы. По базе небольшой делаю DBGOTOP() и прога ВИСНЕТ, без сообщения об ошибке. Если захожу в сетевое окружение и пытаюсь открыть Сетевой ресурс, то он открывается. Значит моя прога не смогла прочитать базу и повисла. Почему ?

PSP: Andrey пишет: При чем тут индексы. Может и не при чем. Мое дело - предложить. Не попробуешь - не узнаешь.


Andrey: PSP пишет: Не попробуешь - не узнаешь.

Pasha: Andrey пишет: Хотя бы сообщение об ошибки сети получить можно ? Есть ли какие функции для сети. Все, что можно получить, есть в объекте oError. Можно еще анализировать oError:OsCode Для сети дополнительных функций нет. Причина может быть самая банальная; сервер заснул, или аппаратные проблемы с сетевым оборудованием

Andrey: Pasha пишет: Все, что можно получить, есть в объекте oError Да не доходит до ошибки. Прога тупо висит и всё... потом выдаёт сообщение - программа не отвечает ... Pasha пишет: или аппаратные проблемы с сетевым оборудованием Скорее всего проблемы с сетью... Как отловить это - не знаю... Повесил пока таймер, и каждые 2 минуты открываю маленький dbf на сервере. Буду наблюдать.

Dima: Andrey пишет: Повесил пока таймер, и каждые 2 минуты открываю маленький dbf на сервере. Не проще ли делать PING ?

Pasha: Зависание это или зацикливание, или мееееееднеллная работа некоего неоптимизированного алгоритма, или ожидание отклика системы на что-то, некое событие А ты отловил read error тестовой программой ? Ошибка 1010 не должна возникать никогда, это наверняка аппаратные проблемы

Andrey: Скорее всего, я так думаю нет отклика по сети. Прога работает час-два и тупо подвисает. После перезагрузки опять работает. Что то с сетью случается. Есть функции проверки сети ? Ну там активен ли сетевой ресурс или нет ?

Dima: Andrey пишет: Что то с сетью случается. Галю проверь на сетевой карте , режим экономии лепестричества :) Если стоит снимай

Andrey: Dima пишет: Галю проверь на сетевой карте , режим экономии лепестричества :) Если стоит снимай Спасибо ! Понимаю что у юзера нет админа, но в качестве админа не хочется всегда выступать. Хотелось бы в своей программе пропинговать сетевой ресурс. Есть такое для Харбора ?

Dima: Andrey Вот например http://clipper.borda.ru/?1-4-0-00001343-000-0-0-1622733202

PSP: Андрей, ping помог в твоём вопросе?

Andrey: Ещё не знаю, выходные сейчас.

Andrey: PSP пишет: Андрей, ping помог в твоём вопросе? Хорошая штука. Отлично помог ! Прицепил проверку при длительных операциях и сразу перевел стрелки со своей программы на сеть заказчика. У заказчика связь между компами пропадает, катили бочку на мою программу, сейчас не могут. Для ТСБ по массиву тоже отлично работает, как юзер кнопку тычет, делаю ping сетевого ресурса, ошибку отлично ловит. Пока ещё не сделал ТСБ по базе, хотя тоже надо сделать.

PSP: Andrey пишет: Хорошая штука Да, но есть одно "но") Если на компе, который пингуют (сервер, к примеру). запрещено отвечать на пинги (для серверов это нормально), то будет неверное решение, что комп недоступен. ps. Добавлю, что в случае периодических сбоев сети, пинг тоже то будет, то не будет проходить. Так что, гарантий, как видишь, маловато...

Pasha: Я пару лет назад делал программку, чтобы посмотреть свою же сеть в диапазоне 192.168.1.1 - 255. Использовал вариант с hb_ping Компов много, народ приносит свои ноуты и втыкает в сеть, надо было видеть, что происходит. На части устройств получал ответ: access denied. Видно и телефоны, которые цепляются через wifi роутер

Andrey: Pasha пишет: Я пару лет назад делал программку, чтобы посмотреть свою же сеть в диапазоне 192.168.1.1 - 255. Использовал вариант с hb_ping Было бы интересно посмотреть эту программу.

Dima: Andrey пишет: Было бы интересно посмотреть эту программу. Так Паша пишет Использовал вариант с hb_ping и он у тебя есть , вообще не вижу проблемы На коленке можно написать

Andrey: HB_PING2() и HB_PING() которые здесь есть применимы ТОЛЬКО для BCC 5.8 Мне потребовалось пере собрать свою прогу на BCC 5.5 - облом... прога не собирается из за функции HB_PING [pre2]OBJ\demo2_ping.c: hbping.c: Error E2209 hbping.c 58: Unable to open include file 'icmpapi.h' *** 1 errors in Compile ***[/pre2] Есть ли HB_PING для компилятора BCC 5.5 ? BCC 5.8 не могу у себя использовать, иконки неправильно в программе у меня показывает...



полная версия страницы