Автор | Сообщение |
|
| постоянный участник
|
Пост N: 7497
Зарегистрирован: 12.09.06
|
|
Отправлено: 02.08.23 22:42. Заголовок: Обрыв соединения на SHARED диске ?
Имею заказчика. У него странная ситуация с моей программой. Сеть из двух компов, сервер (на нем расшаренная папка) и локальная станция. Компы современные, на Win10x64bit Но прога на МиниГуи (Харбор последний) в течении дня несколько раз виснет глухо и всё. Раз 8 за день. Помогает только снятие из диспетчера задач. Соответственно когда прога повисла - из-за чего непонятно, в лог ничего не пишется. Сегодня отловил причину. Кратковременная потеря сетевого соединения ! Вот что в логе: 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) Как с этим боротся ? Хотя бы сообщение об ошибки сети получить можно ? Есть ли какие функции для сети. Пробовал при ВИСЯЧЕЙ проге открыть сеть через Проводник, сетевой ресурс открывается. А программа висит... У других моих пользователей таких проблем НЕТ вообще...
|
|
|
Ответов - 53
, стр:
1
2
3
All
[только новые]
|
|
|
| постоянный участник
|
Пост N: 1650
Зарегистрирован: 27.01.07
|
|
Отправлено: 03.08.23 08:39. Заголовок: Индексы не пробовал ..
Индексы не пробовал пересоздать?
|
|
|
|
| постоянный участник
|
Пост N: 7498
Зарегистрирован: 12.09.06
|
|
Отправлено: 03.08.23 09:55. Заголовок: При чем тут индексы...
При чем тут индексы. Открыты все базы при старте программы. По базе небольшой делаю DBGOTOP() и прога ВИСНЕТ, без сообщения об ошибке. Если захожу в сетевое окружение и пытаюсь открыть Сетевой ресурс, то он открывается. Значит моя прога не смогла прочитать базу и повисла. Почему ?
|
|
|
|
| постоянный участник
|
Пост N: 1651
Зарегистрирован: 27.01.07
|
|
Отправлено: 03.08.23 10:19. Заголовок: Andrey пишет: При ч..
Andrey пишет: Может и не при чем. Мое дело - предложить. Не попробуешь - не узнаешь.
|
|
|
|
| постоянный участник
|
Пост N: 7499
Зарегистрирован: 12.09.06
|
|
Отправлено: 03.08.23 10:50. Заголовок: PSP пишет: Не попро..
PSP пишет: цитата: | Не попробуешь - не узнаешь. |
|
|
|
|
|
| Администратор
|
Пост N: 4110
Зарегистрирован: 23.05.05
|
|
Отправлено: 04.08.23 08:43. Заголовок: Andrey пишет: Хотя ..
Andrey пишет: цитата: | Хотя бы сообщение об ошибки сети получить можно ? Есть ли какие функции для сети. |
| Все, что можно получить, есть в объекте oError. Можно еще анализировать oError:OsCode Для сети дополнительных функций нет. Причина может быть самая банальная; сервер заснул, или аппаратные проблемы с сетевым оборудованием
|
|
|
|
| постоянный участник
|
Пост N: 7500
Зарегистрирован: 12.09.06
|
|
Отправлено: 04.08.23 10:03. Заголовок: Pasha пишет: Все, ч..
Pasha пишет: цитата: | Все, что можно получить, есть в объекте oError |
| Да не доходит до ошибки. Прога тупо висит и всё... потом выдаёт сообщение - программа не отвечает ... Pasha пишет: цитата: | или аппаратные проблемы с сетевым оборудованием |
| Скорее всего проблемы с сетью... Как отловить это - не знаю... Повесил пока таймер, и каждые 2 минуты открываю маленький dbf на сервере. Буду наблюдать.
|
|
|
|
| |
Пост N: 7773
Зарегистрирован: 17.05.05
|
|
Отправлено: 04.08.23 10:45. Заголовок: Andrey пишет: Повес..
Andrey пишет: цитата: | Повесил пока таймер, и каждые 2 минуты открываю маленький dbf на сервере. |
| Не проще ли делать PING ?
|
|
|
|
| Администратор
|
Пост N: 4111
Зарегистрирован: 23.05.05
|
|
Отправлено: 04.08.23 12:16. Заголовок: Зависание это или за..
Зависание это или зацикливание, или мееееееднеллная работа некоего неоптимизированного алгоритма, или ожидание отклика системы на что-то, некое событие А ты отловил read error тестовой программой ? Ошибка 1010 не должна возникать никогда, это наверняка аппаратные проблемы
|
|
|
|
| постоянный участник
|
Пост N: 7501
Зарегистрирован: 12.09.06
|
|
Отправлено: 04.08.23 12:58. Заголовок: Скорее всего, я так ..
Скорее всего, я так думаю нет отклика по сети. Прога работает час-два и тупо подвисает. После перезагрузки опять работает. Что то с сетью случается. Есть функции проверки сети ? Ну там активен ли сетевой ресурс или нет ?
|
|
|
|
| |
Пост N: 7775
Зарегистрирован: 17.05.05
|
|
Отправлено: 04.08.23 13:02. Заголовок: Andrey пишет: Что т..
Andrey пишет: цитата: | Что то с сетью случается. |
| Галю проверь на сетевой карте , режим экономии лепестричества :) Если стоит снимай
|
|
|
|
| постоянный участник
|
Пост N: 7502
Зарегистрирован: 12.09.06
|
|
Отправлено: 04.08.23 13:24. Заголовок: Dima пишет: Галю пр..
Dima пишет: цитата: | Галю проверь на сетевой карте , режим экономии лепестричества :) Если стоит снимай |
| Спасибо ! Понимаю что у юзера нет админа, но в качестве админа не хочется всегда выступать. Хотелось бы в своей программе пропинговать сетевой ресурс. Есть такое для Харбора ?
|
|
|
|
|
| |
Пост N: 7776
Зарегистрирован: 17.05.05
|
|
Отправлено: 04.08.23 14:05. Заголовок: Andrey Вот например..
|
|
|
|
| постоянный участник
|
Пост N: 1652
Зарегистрирован: 27.01.07
|
|
Отправлено: 05.08.23 20:27. Заголовок: Андрей, ping помог в..
Андрей, ping помог в твоём вопросе?
|
|
|
|
| постоянный участник
|
Пост N: 7506
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.08.23 21:09. Заголовок: Ещё не знаю, выходны..
Ещё не знаю, выходные сейчас.
|
|
|
|
| постоянный участник
|
Пост N: 7515
Зарегистрирован: 12.09.06
|
|
Отправлено: 17.08.23 21:16. Заголовок: PSP пишет: Андрей, ..
PSP пишет: цитата: | Андрей, ping помог в твоём вопросе? |
| Хорошая штука. Отлично помог ! Прицепил проверку при длительных операциях и сразу перевел стрелки со своей программы на сеть заказчика. У заказчика связь между компами пропадает, катили бочку на мою программу, сейчас не могут. Для ТСБ по массиву тоже отлично работает, как юзер кнопку тычет, делаю ping сетевого ресурса, ошибку отлично ловит. Пока ещё не сделал ТСБ по базе, хотя тоже надо сделать.
|
|
|
|
| постоянный участник
|
Пост N: 1654
Зарегистрирован: 27.01.07
|
|
Отправлено: 18.08.23 09:01. Заголовок: Andrey пишет: Хорош..
Andrey пишет: Да, но есть одно "но") Если на компе, который пингуют (сервер, к примеру). запрещено отвечать на пинги (для серверов это нормально), то будет неверное решение, что комп недоступен. ps. Добавлю, что в случае периодических сбоев сети, пинг тоже то будет, то не будет проходить. Так что, гарантий, как видишь, маловато...
|
|
|
|
| Администратор
|
Пост N: 4113
Зарегистрирован: 23.05.05
|
|
Отправлено: 18.08.23 12:03. Заголовок: Я пару лет назад дел..
Я пару лет назад делал программку, чтобы посмотреть свою же сеть в диапазоне 192.168.1.1 - 255. Использовал вариант с hb_ping Компов много, народ приносит свои ноуты и втыкает в сеть, надо было видеть, что происходит. На части устройств получал ответ: access denied. Видно и телефоны, которые цепляются через wifi роутер
|
|
|
|
| постоянный участник
|
Пост N: 7517
Зарегистрирован: 12.09.06
|
|
Отправлено: 18.08.23 21:03. Заголовок: Pasha пишет: Я пару..
Pasha пишет: цитата: | Я пару лет назад делал программку, чтобы посмотреть свою же сеть в диапазоне 192.168.1.1 - 255. Использовал вариант с hb_ping |
| Было бы интересно посмотреть эту программу.
|
|
|
|
| |
Пост N: 7790
Зарегистрирован: 17.05.05
|
|
Отправлено: 18.08.23 21:12. Заголовок: Andrey пишет: Было ..
Andrey пишет: цитата: | Было бы интересно посмотреть эту программу. |
| Так Паша пишет Использовал вариант с hb_ping и он у тебя есть , вообще не вижу проблемы На коленке можно написать
|
|
|
|
| постоянный участник
|
Пост N: 7519
Зарегистрирован: 12.09.06
|
|
Отправлено: 22.08.23 19:46. Заголовок: HB_PING2() и HB_PING..
HB_PING2() и HB_PING() которые здесь есть применимы ТОЛЬКО для BCC 5.8 Мне потребовалось пере собрать свою прогу на BCC 5.5 - облом... прога не собирается из за функции HB_PING OBJ\demo2_ping.c: hbping.c: Error E2209 hbping.c 58: Unable to open include file 'icmpapi.h' *** 1 errors in Compile *** Есть ли HB_PING для компилятора BCC 5.5 ? BCC 5.8 не могу у себя использовать, иконки неправильно в программе у меня показывает...
|
|
|
|
| постоянный участник
|
Пост N: 4369
Зарегистрирован: 17.02.12
|
|
Отправлено: 22.08.23 21:15. Заголовок: Andrey пишет Есть ли..
Andrey пишет цитата: | Есть ли HB_PING для компилятора BCC 5.5 ? |
| Может просто воспользоваться ping.exe с протоколом для проверки 0 потерянных блоков, с erroelevel 1 при ошибке и ... usage: ping [-t] [-a] [-n счетчик] [-l размер] [-f] [-i TTL] [-v тип] [-r счетчик] [-s счетчик] [{-j список_узлов | -k список_узлов}] [-w интервал] [имя_конечного_компьютера] PS Проверку вынести на планировщик в периодичность по времени, не загружать свою программу, путь работает bat файл, например, такой (с полей интернета) @echo off cls ping racer | find "Packets: Sent = 4, Received = 4, Lost = 0 (0% loss)," if not errorlevel 1 set error=success if errorlevel 1 set error=failure cls echo Result: %error% pause Можешь красиво оформить запуск своей программой и сообщать об ошибках, вести лог и т.д. При обнаружении ошибки можешь закрывать свою основную программу
|
|
|
|
|
| постоянный участник
|
Пост N: 7520
Зарегистрирован: 12.09.06
|
|
Отправлено: 23.08.23 13:24. Заголовок: Я понял почему мои ю..
Я понял почему мои юзера жалуются на работу моей проги. Если комп ушёл в спящий режим, то после того как юзер его разбудил - локальная сеть и инет какое то время НЕ ДОСТУПНЫ любым программам. Соответсвенно PING из моей программы на сервер не пройдёт !!! Какой механизм в программе можно придумать для исключения таких ситуаций ? Как определить у себя в программе, что программа вышла их спящего режима и повесить задержку чтобы комп проснулся ? Можно окно повесить с сообщением "Комп вышел из спящего режима !"
|
|
|
|
| постоянный участник
|
Пост N: 1655
Зарегистрирован: 27.01.07
|
|
Отправлено: 23.08.23 14:34. Заголовок: Andrey пишет: Если ..
Andrey пишет: цитата: | Если комп ушёл в спящий режим, то после того как юзер его разбудил - локальная сеть и инет какое то время НЕ ДОСТУПНЫ любым программам. Соответсвенно PING из моей программы на сервер не пройдёт !!! |
| БИНГО!!!)))
|
|
|
|
| постоянный участник
|
Пост N: 1656
Зарегистрирован: 27.01.07
|
|
Отправлено: 23.08.23 14:40. Заголовок: Andrey пишет: Какой..
|
|
|
|
| |
Пост N: 7793
Зарегистрирован: 17.05.05
|
|
Отправлено: 23.08.23 14:55. Заголовок: PSP пишет: Как это..
PSP пишет: цитата: | Как это прилепить к харбору, не подскажу. |
| этот вопрос уже всплывал :)
|
|
|
|
| постоянный участник
|
Пост N: 1657
Зарегистрирован: 27.01.07
|
|
Отправлено: 23.08.23 14:59. Заголовок: Dima пишет: этот во..
Dima пишет: цитата: | этот вопрос уже всплывал :) |
| А кто задавал?))
|
|
|
|
| |
Пост N: 7794
Зарегистрирован: 17.05.05
|
|
Отправлено: 23.08.23 15:02. Заголовок: http://clipper.borda..
|
|
|
|
| постоянный участник
|
Пост N: 1658
Зарегистрирован: 27.01.07
|
|
Отправлено: 23.08.23 15:05. Заголовок: Dima пишет: некий A..
Dima пишет: цитата: | некий Andrey там еще и пример свой выложил |
| Тогда у него нет проблем
|
|
|
|
| |
Пост N: 7795
Зарегистрирован: 17.05.05
|
|
Отправлено: 23.08.23 15:08. Заголовок: PSP пишет: Тогда у ..
PSP пишет:
|
|
|
|
| постоянный участник
|
Пост N: 7522
Зарегистрирован: 12.09.06
|
|
Отправлено: 23.08.23 15:24. Заголовок: Dima пишет: Вот тем..
Dima пишет: цитата: | Вот тема и некий Andrey там еще и пример свой выложил |
| SergKis пишет: Да я не смотрел чем тема завершилась. Занят был и пропустил, а вот и потребовалось тоже.
|
|
|
|
| |
Пост N: 7796
Зарегистрирован: 17.05.05
|
|
Отправлено: 23.08.23 19:35. Заголовок: Andrey пишет: Error..
Andrey пишет: цитата: | Error E2209 hbping.c 58: Unable to open include file 'icmpapi.h' |
| Можно пробнуть вот это там нет 'icmpapi.h'
|
|
|
|
|
| постоянный участник
|
Пост N: 7523
Зарегистрирован: 12.09.06
|
|
Отправлено: 23.08.23 21:39. Заголовок: Dima пишет: Можно п..
Dima пишет: Да нет, это не пойдёт, там #include "FiveLinux.ch", выдаёт кучу ошибок. А разве нельзя загрузить DLL из системы и получить ping ? В МиниГуи полно же фишек загрузок системных DLL, типа такого: HMG_CallDLL ("GDI32.DLL", HB_DYN_CTYPE_INT, "AddFontResourceEx", cFontFile, FR_PRIVATE+FR_NOT_ENUM, 0)
|
|
|
|
| постоянный участник
|
Пост N: 7524
Зарегистрирован: 12.09.06
|
|
Отправлено: 24.08.23 07:32. Заголовок: Фиг с этим BCC 5.5, ..
Фиг с этим BCC 5.5, перехожу на BCC 5.8 Решил свою проблему показа иконок. В исходнике который есть, выходит предупреждение. OBJ\demo_ping.c: Warning W8084 demo_ping.prg 113: Suggest parentheses to clarify precedence in function hb_Ping2 Исходник: WSADATA wsaData; int iResult; iResult = WSAStartup( MAKEWORD(2, 2), &wsaData ); // строка 113 if( iResult == 0 ) Как его убрать ?
|
|
|
|
| |
Пост N: 1955
Зарегистрирован: 20.02.11
|
|
Отправлено: 24.08.23 11:12. Заголовок: Andrey пишет: Как е..
|
|
|
|
| Администратор
|
Пост N: 4114
Зарегистрирован: 23.05.05
|
|
Отправлено: 24.08.23 13:35. Заголовок: можно заменить макро..
можно заменить макрос: iResult = WSAStartup( HB_MKUSHORT(2, 2), &wsaData ); или сделать еще проще: iResult = WSAStartup( 0x0202, &wsaData );
|
|
|
|
| постоянный участник
|
Пост N: 7525
Зарегистрирован: 12.09.06
|
|
Отправлено: 24.08.23 19:41. Заголовок: Haz , Pasha - СПАСИБ..
Haz , Pasha - СПАСИБО ! Отправил примеры с PING Григорию...
|
|
|
|
| |
Пост N: 7797
Зарегистрирован: 17.05.05
|
|
Отправлено: 24.08.23 19:48. Заголовок: Andrey пишет: Да не..
Andrey пишет: цитата: | Да нет, это не пойдёт, там #include "FiveLinux.ch", выдаёт кучу ошибок. |
| Да , это я маху дал
|
|
|
|
| постоянный участник
|
Пост N: 7531
Зарегистрирован: 12.09.06
|
|
Отправлено: 01.09.23 14:23. Заголовок: Два разных заказчика..
Два разных заказчика жалуются мне что ошибка(окно) по HB_PING2 часто появляется... Админ пишет что с сетью все в порядке, потерь пакетов до сервера нет. А HB_PING2 выдаёт ошибку. Почему ? IF AT("\\",cPathServer) > 0 cNameServer := SUBSTR(cPathServer,3) cNameServer := SUBSTR(cNameServer,1,AT("\",cNameServer)-1) lRet := HB_PING2(cNameServer) IF ! lRet cMsg := " СЕРВЕР НЕ ДОСТУПЕН !;" cMsg += 'НЕТ доступа к сетевому ресурсу !;' cMsg += cPathServer + ";;" AlertStop( cMsg, "Ошибка доступа" ) lRet := .F. ENDIF ELSE lRet := .T. // это локальный компьютер ENDIF
|
|
|
|
| постоянный участник
|
Пост N: 1659
Зарегистрирован: 27.01.07
|
|
Отправлено: 01.09.23 14:31. Заголовок: Andrey пишет: Админ..
Andrey пишет: цитата: | Админ пишет что с сетью все в порядке, потерь пакетов до сервера нет. |
| Ты пингуешь сервер по имени или ip-адресу?
|
|
|
|
| постоянный участник
|
Пост N: 7532
Зарегистрирован: 12.09.06
|
|
Отправлено: 01.09.23 14:41. Заголовок: По имени - cNameServ..
По имени - cNameServer := "\\Сервер\ресурс"
|
|
|
|
| постоянный участник
|
Пост N: 1660
Зарегистрирован: 27.01.07
|
|
Отправлено: 01.09.23 15:23. Заголовок: Andrey пишет: По им..
Andrey пишет: цитата: | По имени - cNameServer := "\\Сервер\ресурс" |
| В функции HB_PING2 (и в HB_PING тоже) из имени сервера путем вызова gethostbyname() получают ip-адрес хоста. Что-то мне кажется, что тут могут быть грабли. К примеру, браузер компьютеров не ответил быстро или в файле hosts вызывающей машины есть соответствующая запись - х.з. Чтобы это всё исключить нужно вызывать HB_PING сразу с ip-адресом.
|
|
|
|
|
| постоянный участник
|
Пост N: 7534
Зарегистрирован: 12.09.06
|
|
Отправлено: 01.09.23 15:56. Заголовок: Спасибо БОЛЬШОЕ ! :..
Спасибо БОЛЬШОЕ ! Переделаю и попробую.
|
|
|
|
| постоянный участник
|
Пост N: 1661
Зарегистрирован: 27.01.07
|
|
Отправлено: 01.09.23 16:02. Заголовок: И всё-таки нужно учи..
И всё-таки нужно учитывать, что, даже если сервер пингуется, это не даёт гарантии доступности общего ресурса на нем. Пинг - лишь проверка присутствия хоста в сети.
|
|
|
|
| постоянный участник
|
Пост N: 7537
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.09.23 20:01. Заголовок: PSP пишет: И всё-та..
PSP пишет: цитата: | И всё-таки нужно учитывать, что, даже если сервер пингуется, это не даёт гарантии доступности общего ресурса на нем |
| А как проверить что на общем ресурсе можно создать базу ? Попытаться создать простой текстовый файл на нём ? Есть какое то готовое решение с показом ошибок создания/доступа к сетевому ресурсу ?
|
|
|
|
| постоянный участник
|
Пост N: 1663
Зарегистрирован: 27.01.07
|
|
Отправлено: 05.09.23 20:53. Заголовок: Andrey пишет: А как..
Andrey пишет: цитата: | А как проверить что на общем ресурсе можно создать базу ? Попытаться создать простой текстовый файл на нём ? |
| Думаю, да. Любой, необязательно текстовый)) Создать, записать что-нить, закрыть, проверить размер (или открыть-прочитать), удалить.
|
|
|
|
| постоянный участник
|
Пост N: 4381
Зарегистрирован: 17.02.12
|
|
Отправлено: 05.09.23 20:57. Заголовок: PSP пишет Создать, з..
PSP пишет цитата: | Создать, записать что-нить, закрыть, проверить размер (или открыть-прочитать), удалить. |
| Только использовать новые файловые ф-ии hb_vf...
|
|
|
|
| постоянный участник
|
Пост N: 1664
Зарегистрирован: 27.01.07
|
|
Отправлено: 05.09.23 21:00. Заголовок: А также можно вспомн..
А также можно вспомнить, что есть конструкция цитата: | BEGIN SEQUENCE <комманды>... [BREAK [<выраж.>]] <комманды>... [RECOVER [USING <переменная>]] <комманды>.. END [SEQUENCE] |
|
|
|
|
|
| постоянный участник
|
Пост N: 7538
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.09.23 21:15. Заголовок: SergKis пишет: Толь..
SergKis пишет: цитата: | Только использовать новые файловые ф-ии hb_vf... |
| Есть какое то готовое решение с показом ошибок создания/доступа файла на сетевом ресурсе ? Функция dbCreate( cPath + cDbf, aStr ) не создаёт на сетевом ресурсе базу...
|
|
|
|
| постоянный участник
|
Пост N: 4382
Зарегистрирован: 17.02.12
|
|
Отправлено: 05.09.23 21:21. Заголовок: Andrey пишет Функция..
|
|
|
|
| постоянный участник
|
Пост N: 7539
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.09.23 21:33. Заголовок: Не работают... Вот к..
Не работают... Вот код, случайно пропущен разделить перед файлом: ? ProcNL(), hb_vfExists(cDbf), cDbf If !hb_vfExists(cDbf) AlertStop("Нет файла базы !;" + cDbf + ";;" + ProcNL() + ";" + ProcNL(1) ) RETURN .F. ENDIF Вот лог: Вызов из: MYUSEAREA(104) --> util_use.prg .T. \\Сервер\work_uchet\@TEST10test10.dbf
|
|
|
|
| постоянный участник
|
Пост N: 4383
Зарегистрирован: 17.02.12
|
|
Отправлено: 05.09.23 21:49. Заголовок: Andrey IF ( hFile :..
Andrey IF ( hFile := hb_vfOpen( cFile, HB_FO_CREAT ) ) == NIL // FError() ...ошибка создания, вероятно сервер не доступен ELSE nLen := hb_vfWrite( hFile, "12345") IF nLen != Len("12345") ..ошибка записи ENDIF IF ( lRet := hb_vfClose( hFile ) ) IF !Empty(nRet := hb_vfErase( cFile)) ..ошибка удаления ENDIF ELSE ..ошибка Close ENDIF ENDIF
|
|
|
|
| постоянный участник
|
Пост N: 7540
Зарегистрирован: 12.09.06
|
|
Отправлено: 05.09.23 22:03. Заголовок: Andrey пишет: Не ра..
Andrey пишет: цитата: | Не работают... Вот код, случайно пропущен разделить перед файлом: |
| Блин, промашку дал... В другой папке создался файл. Error DBFCDX/1004 Ошибка создания: \\Сервер\work_uchet2\@TEST10\test10.dbf OS Error: 67=Network name not found Есть функция проверки сетевого ресурса ? Или просто проверить папку функцией hb_vfDirExists( cDirName ) ?
|
|
|
|
| постоянный участник
|
Пост N: 1665
Зарегистрирован: 27.01.07
|
|
Отправлено: 06.09.23 10:50. Заголовок: Andrey пишет: \..
|
|
|
Ответов - 53
, стр:
1
2
3
All
[только новые]
|
|