Автор | Сообщение |
|
| постоянный участник
|
Пост 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: 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
[только новые]
|
|