Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Многопользовательская dbf и Windows 7  [new]
kazakowa
Member

Откуда:
Сообщений: 6
Дано: Dbf таблица, обитающая в сети Novel, к которой одновременно подключается много пользователей. Парк ПК на части которой установлена OS Windows XP, а на другой Windows 7. Пользователи с утра запускают программы написанные на VFP 9 в которых четко указано: "Use <имя таблицы> in 0 shared again".
Ситуация: Если к таблице первым подключился пользователь на ПК работающим под Windows XP, остальные пользователи, не зависимо от ОС, отработают день без проблем, а вот если "первым стартовал" счастливый обладатель ПК с Windows 7, независимо в административном режиме или пользовательском, никакие другие пользователи открыть её уже не смогут, не зависимо от версий ОС. Системные администраторы, обслуживающие Novel, говорят:" У нас все в штатном режиме." А бригада прикладников каждое утро по 30-40 минут "разруливают узеров".
Машин в организации под Windows 7 все больше и больше, прикладники стараются перегружать dbf-ки на SQL-сервер и переписывать программы, но прикладников мало, а коллекция dbf и программ на VFP ,в нашей организации, огромна, нужно как-то укрощать windows 7. Научить приложение распознавать ОС просто подал функцию OS() и нет проблем, а дольше что? На одном из форумов дочиталась, что проблема блокировки в системе кэширования Windows 6 поколения. Лично пробовала отрегулировать размер кэша функцией SYS(3050) - не получилось.
Уважаемые Гуру, ПОМОГИТЕ! До пенсии ёще 10 лет! VFP меня кормит и поит! :(
30 апр 21, 08:53    [22316672]     Ответить | Цитировать Сообщить модератору
 Re: Многопользовательская dbf и Windows 7  [new]
Dima T
Member

Откуда:
Сообщений: 16072
kazakowa
Пользователи с утра запускают программы написанные на VFP 9 в которых четко указано: "Use <имя таблицы> in 0 shared again".

Не верю!

Для начала провести тест:
Закинуть в новелл какую-нибудь DBF.
Собрать простейшее приложение
set excl off
Use <имя таблицы> in 0 shared again
MessageBox("Готово")

Запустить сначала на win7 затем на xp.

Если будет ошибка, то сюда показать ее текст. Текст ошибки копируется по Ctrl+C
30 апр 21, 09:34    [22316681]     Ответить | Цитировать Сообщить модератору
 Re: Многопользовательская dbf и Windows 7  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 2466
kazakowa
До пенсии ёще 10 лет!

Хорошо. Как раз успеешь переписать на что-то более вменяемое.

kazakowa
Если к таблице первым подключился пользователь на ПК работающим под Windows XP, остальные пользователи, не зависимо от ОС, отработают день без проблем

Решение очевидно. Надо завести виртуалку с хп, в которой фокс будет подключаться ко всем таблицам.
30 апр 21, 09:58    [22316698]     Ответить | Цитировать Сообщить модератору
 Re: Многопользовательская dbf и Windows 7  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 6642
kazakowa,

Не выключайте на ночь одну машину с ХР
30 апр 21, 10:04    [22316701]     Ответить | Цитировать Сообщить модератору
 Re: Многопользовательская dbf и Windows 7  [new]
kazakowa
Member

Откуда:
Сообщений: 6
Не хамите бабушке! В проффесии официально с 1994 года. Не верите смотрите вложение с обоих сторон ПК с ОС Windows 7.

К сообщению приложен файл (нЕТ_ОТКРЫТИЯ.docx - 109Kb) cкачать
30 апр 21, 10:10    [22316705]     Ответить | Цитировать Сообщить модератору
 Re: Многопользовательская dbf и Windows 7  [new]
kazakowa
Member

Откуда:
Сообщений: 6
Siemargl, оставлять на ночь не выйдет, по ночам таблицы пакуются и индексы обновляются.
30 апр 21, 10:16    [22316710]     Ответить | Цитировать Сообщить модератору
 Re: Многопользовательская dbf и Windows 7  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 2466
kazakowa,

Значит подключаться с хп автоматом после того как таблицы допакуются.

Сообщение было отредактировано: 30 апр 21, 10:21
30 апр 21, 10:29    [22316724]     Ответить | Цитировать Сообщить модератору
 Re: Многопользовательская dbf и Windows 7  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 9892
Солидарен с Dima T, странно это все.

Смотреть кто блокирует файл, разбираться почему.

В инете упоминают, что проблемы с блокировками могут быть, например, из-за антивирусов.

Сообщение было отредактировано: 30 апр 21, 12:07
30 апр 21, 12:10    [22316817]     Ответить | Цитировать Сообщить модератору
 Re: Многопользовательская dbf и Windows 7  [new]
Dima T
Member

Откуда:
Сообщений: 16072
kazakowa
Не верите смотрите вложение с обоих сторон ПК с ОС Windows 7.

Странно, но даже если все так, то дело все-равно не в фоксе.
Там механика такая: фокс обращается к виндовсу с командой открыть файл в shared режиме. Дальше виндавс открывает этот файл своими средствами. Если бы фокс косячил, то он бы с любого виндавса монопольно файл открывал бы.
Внутренний кэш фокса тоже ни при чем, читая файл сделал копию содержимого, никаких блокировок тут не требуется.
100% косяк где-то в винде. Возможно кривой драйвер сетевухи для 7-ки, может там можно поиграть какими-нибудь настройками. В 7-ке вроде есть настройки для работы в режиме совместимым с XP, там потыкаться и т.д. и т.п.
В любом случае эту проблему должны решать админы.

Несколько вариантов как им это доказать:
1. Разместить БД в виндовой сети на виндовой шаре. Уверен что проблема исчезнет.
2. Сделать небольшую прогу хоть на чем кроме фокса, которая с помощью WinAPI функции CreateFile() откроет файл в расшаренном режиме. Пооткрывать с ее помощью. Думаю глюк повторится.

По крайней мере стабильная демонстрация проблемы это уже много, т.к. теперь есть инструмент с помощью которого можно проверять разные версии.
30 апр 21, 13:02    [22316847]     Ответить | Цитировать Сообщить модератору
 Re: Многопользовательская dbf и Windows 7  [new]
Dima T
Member

Откуда:
Сообщений: 16072
kazakowa
Научить приложение распознавать ОС просто подал функцию OS() и нет проблем, а дольше что?

А дальше так: при старте в папке с БД создаешь (fcreate()) файлик used.flg. Если не создался - работаем, т.к. кто-то уже вошел, иначе провереям ОС, если Win7 - закрыть файл и сообщение "Работать нельзя. Подождите пока кто-нибудь зайдет с WinXP".

PS Два и более компа с Win7 работают вместе? Если два компа с Win7 работают, а третий с XP не может зайти, то это еще один способ продемонстрировать админу что блокировки нет.
30 апр 21, 13:17    [22316859]     Ответить | Цитировать Сообщить модератору
 Re: Многопользовательская dbf и Windows 7  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 2466
Dima T
"Работать нельзя. Подождите пока кто-нибудь зайдет с WinXP"

Вот такое решение поддерживаю. Юзер должен понимать, на какой рухляди всё крутится.
30 апр 21, 13:29    [22316867]     Ответить | Цитировать Сообщить модератору
 Re: Многопользовательская dbf и Windows 7  [new]
Leonid Kudryavtsev
Member

Откуда:
Сообщений: 9892
Dima T

Странно, но даже если все так, то дело все-равно не в фоксе...

+1

беглый поиск по инету говорит, что на подобное нарываются:
1) при антивирусах. Идет обращение к файлу, антивирус его паралельно открывает для проверки.
2) и вроде еще есть какие-то опортунистические блокировки, как я понимаю, отключаются
https://docs.microsoft.com/en-US/windows/win32/fileio/opportunistic-locks
https://infusionsoftware.zendesk.com/hc/en-us/articles/115002293593-To-Disable-SMB2-and-OPLOCK-Network-Locking-Errors-

В любом случае, первым делом, нужно искать кто заблокировал файл и в каком режиме. Начиная от средств сервера (novel не знаю) и заканчивая тулзами от System Internals
30 апр 21, 14:00    [22316895]     Ответить | Цитировать Сообщить модератору
 Re: Многопользовательская dbf и Windows 7  [new]
Siemargl
Member

Откуда: 010100
Сообщений: 6642
Кстати, сервер то Новелл. Блокировки от него.

Версии клиента для ХР и 7 наверняка разные. А в них мутили разные схемы блокировки.

Гуглить Oplocks, может настройками Новелл клиента решится.

Упс, не дочитал последнее сообщение (

Сообщение было отредактировано: 30 апр 21, 15:55
30 апр 21, 16:01    [22316982]     Ответить | Цитировать Сообщить модератору
 Re: Многопользовательская dbf и Windows 7  [new]
Dima T
Member

Откуда:
Сообщений: 16072
Еще добавлю что средствами фокса можно получить только два варианта:
Use ... shared

Use ... exclusive

Это всё. Тюнинговать нечего, нет промежуточных вариантов.
30 апр 21, 21:21    [22317089]     Ответить | Цитировать Сообщить модератору
 Re: Многопользовательская dbf и Windows 7  [new]
kazakowa
Member

Откуда:
Сообщений: 6
Dima T
kazakowa
Научить приложение распознавать ОС просто подал функцию OS() и нет проблем, а дольше что?

А дальше так: при старте в папке с БД создаешь (fcreate()) файлик used.flg. Если не создался - работаем, т.к. кто-то уже вошел, иначе провереям ОС, если Win7 - закрыть файл и сообщение "Работать нельзя. Подождите пока кто-нибудь зайдет с WinXP".

PS Два и более компа с Win7 работают вместе? Если два компа с Win7 работают, а третий с XP не может зайти, то это еще один способ продемонстрировать админу что блокировки нет.

Всем спасибо, за предлагаемые решения на оперативке озвучу начальнику. Но следует отметить разработчики из Чебоксарского ГНИВЦ как-то проблему решают (самый знаменитый продукт "Налогоплательщик ЮЛ"). Но там спецы не мне маленькому прикладнику чета.
6 май 21, 10:18    [22319118]     Ответить | Цитировать Сообщить модератору
 Re: Многопользовательская dbf и Windows 7  [new]
Dima T
Member

Откуда:
Сообщений: 16072
kazakowa
Но следует отметить разработчики из Чебоксарского ГНИВЦ как-то проблему решают (самый знаменитый продукт "Налогоплательщик ЮЛ"). Но там спецы не мне маленькому прикладнику чета.

Ну извини что мы в новеле не разбираемся. Лично я ни разу с ним не сталкивался, думаю как и большинство присутствующих. Думал он умер давным-давно.
Ищи форум по новелу и там спроси.
6 май 21, 12:10    [22319166]     Ответить | Цитировать Сообщить модератору
 Re: Многопользовательская dbf и Windows 7  [new]
kazakowa
Member

Откуда:
Сообщений: 6
kazakowa
Dima T
пропущено...

А дальше так: при старте в папке с БД создаешь (fcreate()) файлик used.flg. Если не создался - работаем, т.к. кто-то уже вошел, иначе провереям ОС, если Win7 - закрыть файл и сообщение "Работать нельзя. Подождите пока кто-нибудь зайдет с WinXP".

PS Два и более компа с Win7 работают вместе? Если два компа с Win7 работают, а третий с XP не может зайти, то это еще один способ продемонстрировать админу что блокировки нет.

Всем спасибо, за предлагаемые решения на оперативке озвучу начальнику. Но следует отметить разработчики из Чебоксарского ГНИВЦ как-то проблему решают (самый знаменитый продукт "Налогоплательщик ЮЛ"). Но там спецы не мне маленькому прикладнику чета.

Подумала еще раз, перед установкой продукта разработанного ГНИВЦ, требуется: запуститься в административном режиме и отключить антивирус, сдаётся мне вовремя установки, операционку и антивирусник как-то укрощают, но исключительно в отношении своего продукта. Нужно проводить эксперимент по отключению SMB2, но это после праздников под присмотром системного администратора.
7 май 21, 06:13    [22319409]     Ответить | Цитировать Сообщить модератору
 Re: Многопользовательская dbf и Windows 7  [new]
Sergey Ch
Member

Откуда: Благовещенск
Сообщений: 8894
Siemargl
Версии клиента для ХР и 7 наверняка разные. А в них мутили разные схемы блокировки.

+1

Примерно Ваш случай:
VFP 9 app, novell client, windows 7 BSOD

Вы не указали какой у Вас клиент Novell на двух типах машин и используете ли Вы транзакции в Вашем коде.

Предлагается 2 решения:

Resolution
Workaround: This symptom is known to be caused by a bug in the Novell Client for Windows Vista caching code. This can be worked around by disabling file caching (set the "File Caching" parameter on the Advanced tab in the Novell Client properties page to "Off") or by renaming the \Program Files\Novell\Client\XTier\Drivers\nccache.sys module.

или:

I had the same problem with CaseWare and Taxprep applications on a Netware 6.5 SP6 server. The Win7Pro workstation was locking all other users out. My solution was:
1. Uninstall Novell Client
2. Uninstall NMAS
3. Uninstall NICI
4. Re-boot
5. Delete everything in C:\Novell
6. Unzip "Novell Client 2 for Windows Vista-2008", not Client 2 SP1, and run setup. Do custom install and de-select NMAS.
7. Reboot system, log in and you should be good to go.

Так как у Вас не Vista-2008, то просто попробуйте "DESELECT NMAS" при переустановке.

Good luck!

P.S. А почему нельзя просто "поднять" Windows 2019 server, создать FileShare и туда перенсти все файлы данных?

Сообщение было отредактировано: 7 май 21, 10:57
7 май 21, 11:03    [22319458]     Ответить | Цитировать Сообщить модератору
 Re: Многопользовательская dbf и Windows 7  [new]
kazakowa
Member

Откуда:
Сообщений: 6
Siemargl
Кстати, сервер то Новелл. Блокировки от него.

Версии клиента для ХР и 7 наверняка разные. А в них мутили разные схемы блокировки.

Гуглить Oplocks, может настройками Новелл клиента решится.

Упс, не дочитал последнее сообщение (

"Вот что крест животворящий делает!" И.В. Грозный
Продемонстрировала начальнику сию переписку. Старший системный администратор "проникся перспективами". Fox не виноват! Зря его били по наглой рыжей морде. Причина в Клиенте Новелл.
Решение: На каждой машине с Windows 7 Открываем "Сервисы Novell " -> "Свойства Novell Client" -> "Дополнительные параметры" устанавливаем свойство "Откл" на "Автовостановление" и "Кеширование файлов".
Спасибо за внимание! У меня всё! :)
13 май 21, 08:14    [22321328]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить