Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Attempting to lock ... при чтении определения remote view  [new]
vklepko
Member

Откуда:
Сообщений: 144
Доброе время суток!

Программа на VPF9 SP1 работает с данными на SQL Server. Доступ к данным через remote views, которые хранятся в .DBC контейнере.
Контейнер во время работы программы открывается с опциями Shared Noupdate. Контейнер (как и .EXE) находится в Shared Folder и к нему доступаются одновременно несколько пользователей для чтения определений remote views.

Почти всегда у подавляющего большинства клиентов всё работает хорошо.

Иногда, когда у клиента (а он всегда прав) что-то не в порядке с сетью, появляется "Attempting to lock....".

Насколько я понимаю (могу это сэмулировать), VFP блокирует записи в .DBC при чтении определения remote view. Даже несмотря на то, что .DBC открыт как read-only.

Подскажите можно ли заставить VFP не накладывать блокировки при чтении определений remote vews из read-only .DBC

Спасибо.
10 июл 10, 03:41    [9082198]     Ответить | Цитировать Сообщить модератору
 Re: Attempting to lock ... при чтении определения remote view  [new]
проходящий.
Guest
vklepko
Иногда, когда у клиента (а он всегда прав) что-то не в порядке с сетью,
Вот эти непорядки с сетью и надо устранять, а не заниматься гаданиями на кофейной гуще.
10 июл 10, 09:13    [9082266]     Ответить | Цитировать Сообщить модератору
 Re: Attempting to lock ... при чтении определения remote view  [new]
прошелмимо
Member [заблокирован]

Откуда: Из Курска понаехал
Сообщений: 10363
vklepko

Подскажите можно ли заставить VFP не накладывать блокировки при чтении определений remote vews из read-only .DBC


Я предлагаю не использовать RV.
Основной недостаток - это необходимость хранения в БД.

В 8 и 9 версиях имеется базовый класс - курсорадаптер.
Визуально разработанные классы хранятся в библиотеках классов.

Имеется возможность создания абстрактных механизмов,
которые облегчают разработку и сопровождение приложений.
12 июл 10, 09:18    [9085529]     Ответить | Цитировать Сообщить модератору
 Re: Attempting to lock ... при чтении определения remote view  [new]
vklepko
Member

Откуда:
Сообщений: 144
Немного погуглил.

Похоже, что проблема таки не разрешается стандартными средствами.

Прочел, что в VFP3 изменить remote view можно было только при эксклюзивно открытом .DBC.
С тех пор это было "переосмыслено" и логика стала работать через блокировку записей. Это повлекло за собой возникновение bottlenecks в многопользовательских средах, особенно при большом количестве пользователей, так как только процесс наложивший блокировку может прочесть определение remote view, а остальные ждут.

Такое поведение является одним из "против" remote view, когда сравниваются подходы Remote View vs. SQL Pass Through.


To: прошелмимо
Спасибо за совет.

To: проходящий
Непорядки в сетях некоторых клиентов устанять не получится. У клиентов есть сетевые администраторы, которые за состояние сети отвечают. Я своё видиние проблемы донёс, а принимать решение им.


Спасибо.
13 июл 10, 09:43    [9092705]     Ответить | Цитировать Сообщить модератору
 Re: Attempting to lock ... при чтении определения remote view  [new]
проходящий.
Guest
vklepko
To: проходящий
Непорядки в сетях некоторых клиентов устанять не получится. У клиентов есть сетевые администраторы, которые за состояние сети отвечают. Я своё видиние проблемы донёс, а принимать решение им.
При неработающей сети ЛЮБОЕ программное решение не будет работать. Хоть RV, хоть КАД, хоть SQL Pass Through.
13 июл 10, 09:57    [9092789]     Ответить | Цитировать Сообщить модератору
 Re: Attempting to lock ... при чтении определения remote view  [new]
vklepko
Member

Откуда:
Сообщений: 144
Сетевые администраторы одного из клиентов решили выключить SMB 2.0 и Opportunistic Locking на Windows Server 2008 (там где находится Shared Folder). Насколько я понял, в Server 2008 ( как и в Vista и Windows7) оба по умолчанию включены.

Выключали редактированием registry:

для SMB 2.0:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
REG_DWORD : SMB2=0

для Opportunistic Locking:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
REG_DWORD : EnableOpLocks=0

ну и перегрузить компьютер.

Как результат "Attempting to lock..." исчез. Изменения сделали неделю тому назад.
Понаблюдаем еще недельку.

Спасибо.
24 июл 10, 08:43    [9153177]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить