powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Подскажите плиз по блокировкам
13 сообщений из 13, страница 1 из 1
Подскажите плиз по блокировкам
    #33626308
flocki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Не подскажите, каким образом осуществляется блокировка записей.
Например 2 компа на них запущено приложение, файлы таблиц находятся на
файл сервере. На первом компе происходит блокировка записи в таблице.
Однак если посмотреть, то реально в файл таблицы ничего не пишется. Откуда тогда приложение на втором компе знает о блокировке записи и при попытке блокировки начинает ждать пока запись разблокируется.

И еще вопросик, если кто сталкивался или понимает из-за чего такое может быть:
Есть сетевая прога, таблицы на ф.серваке.
В какой-то момент пользователь добавляет новую запись через форму, сохраняет. Однако реально в таблицу ничего не сохраняется, а оказывается новая запись с пустыми полями (точнее с черточками ||||). Это происходит случайным образом.
...
Рейтинг: 0 / 0
Подскажите плиз по блокировкам
    #33626503
Burn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторОткуда тогда приложение на втором компе знает о блокировке записи и при попытке блокировки начинает ждать пока запись разблокируется
Используюся внутрение механизмы фокса, скрытые от пользователя.

авторВ какой-то момент пользователь добавляет новую запись через форму, сохраняет. Однако реально в таблицу ничего не сохраняется, а оказывается новая запись с пустыми полями (точнее с черточками ||||). Это происходит случайным образом
Проверяй сетевое оборудование - гдето глючит. Или проблемы с сервером (скорее всего с оперативкой)
...
Рейтинг: 0 / 0
Подскажите плиз по блокировкам
    #33626612
flocki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Внутренние механизмы - это общие слова.
Пока приходит на ум, что Fox-а передает запрос файл-серверу на блокировку
части файла, файл-сервер реализует ее и т.д.
Кто-то писал что типа Fox-a пишет о блокировках в заголовок таблицы, однако если он туда пишет, то файл должен изменяться в этот момент.

На счет глюков в сети и на файл-сервере, это как-то туманно, так как других глюков на замечено, да и есть только несколько баз с которыми данные траблы происходят. К тому-же Вы действительно сталкивались с это проблемой из-за глюков в сети и на файл-сервере?
...
Рейтинг: 0 / 0
Подскажите плиз по блокировкам
    #33626726
Burn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПока приходит на ум, что Fox-а передает запрос файл-серверу на блокировку части файла, файл-сервер реализует ее и т.д.

Врядли - например новеловский сервер ничего о блокированой записи фоксом не знает. Можно получить инфу только о пользователях юзающих даную таблицу.

авторКто-то писал что типа Fox-a пишет о блокировках в заголовок таблицы, однако если он туда пишет, то файл должен изменяться в этот момент
В заголовке DBF нет места для такой инфы. Скорее всего фокс использует внутрение таблицы. О чем свидетельствует такой результат - если фоксовское приложение нафиг снести то все блокировки отмирают.

авторК тому-же Вы действительно сталкивались с это проблемой из-за глюков в сети и на файл-сервере?
Я сталкивался имено из-за проблем с файл-сервером. После замены на нормальную серверную платформу глюки исчезли
...
Рейтинг: 0 / 0
Подскажите плиз по блокировкам
    #33626785
flocki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторСкорее всего фокс использует внутрение таблицы. О чем свидетельствует такой результат - если фоксовское приложение нафиг снести то все блокировки отмирают.
Если фокс имеет внутренние таблицы - то где они, даже если они в оперативке и временные, то он туда должен записать инфу о имеющихся блокировках.
Как видно: мы открыли приложение, оно подключилось к файлам таблицы, мы хотим заблокировать запись, и в этот момент получаем информацию о том что мы ее заблокировать не можем.
Место для "внутренних таблиц" получается нет. Получается что инфа о блокировках хранится на стороне файл-сервера. Или в каких-то спец таблицах (типа как у access-a в общем доступе) однако таких таблиц не видно. Либо данный процесс осуществляется связкой ос файл-сервера-службы общего доступа к файлам.

Просто хочется не гадать кто,что и где, а точно знать.
Единственное что я нашел - это строки в описании FoxPro:
"Блокировка осущесвляется средствами сетевой операционной системы..." и все :)

И естественно если приложение отрубить то файл-сервер отреагирует (т.к. сеанс пропал) и разблокирует необх. часть файла (кстати, время реакции может быть разным и многие с этим боролись).

Плохо, что я имею не совсем распростр. ос: TrueUnix 64, на нем samba установлена.
...
Рейтинг: 0 / 0
Подскажите плиз по блокировкам
    #33627022
w3d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
flockiПлохо, что я имею не совсем распростр. ос: TrueUnix 64, на нем samba установлена.
Самба - это совсем отдельная песня...
Версия какая?
...
Рейтинг: 0 / 0
Подскажите плиз по блокировкам
    #33627081
flocki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторВерсия какая?
Samba: Версия 2.2.7a

На счет блокировок: если смотреть анализатором, то при блокировке
записи, клиент посылает запрос по протоколу smb на блокировку, и сервер
отвечает, что она состоялась. Соответсвенно при разблокировке, тоже посыдается запрос unlock и ответ сервера. Так что мне кажется ни каких внутр. таблиц нет, все работает ну уровне ОС сервера.
...
Рейтинг: 0 / 0
Подскажите плиз по блокировкам
    #33627285
w3d
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
flockiSamba: Версия 2.2.7a
В smb.conf чего написано?
...
Рейтинг: 0 / 0
Подскажите плиз по блокировкам
    #33627312
MrSmith
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
См. приложенный файл.
...
Рейтинг: 0 / 0
Подскажите плиз по блокировкам
    #33627348
flocki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MrSmithСм. приложенный файл.
А где приложенный файл???

smb.conf:
workgroup = net
netbios name = server
protocol = NT1
server string = DS10/UNIX
load printers = no
printable = no
guest account = pcguest
lock directory = /usr/local/samba/var/locks
socket options = IPTOS_LOWDELAY TCP_NODELAY
os level = 65
wins support = yes
domain master = yes
local master = yes
preferred master = yes
map to guest = Bad User
log file = /usr/local/samba/var/logs/log.%U
encrypt passwords = yes

[homes]
comment = Home Directories
browseable = no
read only = no
create mode = 0755
hide dot files = yes
fake oplocks = yes

[db002]
comment = DB
path = /shared/db
public = no
valid users = @db
writable = yes
create mask = 0775
directory mask = 0775
share modes = no
...
Рейтинг: 0 / 0
Подскажите плиз по блокировкам
    #33627365
MrSmith
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробую еще раз ...
...
Рейтинг: 0 / 0
Подскажите плиз по блокировкам
    #33627435
flocki
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторПопробую еще раз ...

Спасибо, теперь понятно. Кстати а в более поздних версиях, идеология
такая-же?
...
Рейтинг: 0 / 0
Подскажите плиз по блокировкам
    #33629860
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Igor KorolyovСуть блокировки - наличие системной таблицы (не в плане dbf а таблица в памяти), управляемой ОС, куда и записывается информация о том, кто и чего заблокировал. После этого ОС при обращении к данному файлу выдаёт вопрошающему отлуп - дескать низя. Причём даже прочесть!

Блокируется не весь файл (в общем случае), а некоторая его область - т.е. задаётся от какого смещения и на какую длинну нужно заблокировать данные. Причём размерность блокируемой области (как и всего файла) была ограничена 32-х разрядным числом (со времён DOS так повелось ещё). Т.е. максимум что мы могли заблокировать (точнее управлять блокировками) - это файл объёмом 4 Гб.

Однако снова напомню - блокировка то не позволяет считывать данные - что сделал FoxTeam - очень просто, он стал блокировать не реальную область с данными, а виртуальное пространство за пределами этого файла - т.е. просто прибавил к начальному смещению половину от Max возможного значения - от чего мы и получили известное ограничение размера таблицы (равно как и cdx/fpt и прочих) в 2Гб.

А проблемы происходят не из-за блокировок самих по себе, а из-за того, что любая современная ОС не пишет на диск побайтно, а имеет сложную систему кэширования. Т.е. с точки зрения проги запись ужа прошла, а реально (физически) она всё ещё не на диске, а в кэше ОС, откуда та и выдаёт данные по запросам прочих прог. Ессно что то как ОС пишет данные на диск (так сказать физически) и то, как их пишет прога (логически) - вещи не совпадающие, и потому при крахе ОС вполне может произойти порча файла (заметь - не обязательно заблокированного!) Достаточно чтобы туда вносились изменения, и ОС не успела их все сбросить из кэша.

Полностью дискуссия на эту тему (в том числе и приведенная статья) здесь

http://forum.foxclub.ru/read.php?5,74141,74243#msg-74243
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Подскажите плиз по блокировкам
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]