powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / может ли USE подраться с USE ?
13 сообщений из 13, страница 1 из 1
может ли USE подраться с USE ?
    #34628664
АлексейО
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть VFP8 приложение (некий робот обработки)
открывает некоторые таблицы dbf
выполняет обработку
закрывает таблицы и ждет следующего задания

таковых приложений запущено несколько
разумеется таблицы открываются не эксклюзивно и контроль на блокировку выполняется
и вроде все работает хорошо,
но ... иногда некоторые таблицы не открываются (ошибка 108)
повторение открытия проходит

есть слабая догадка что одновременное use одного и тогоже файла из нескольких процессов приводит к этому,но уж больно не верится этому

Возможно ли такое?
что же еще может помешать неэксклюзивному открытию таблицы?
...
Рейтинг: 0 / 0
может ли USE подраться с USE ?
    #34628751
АлексейОесть VFP8 приложение (некий робот обработки)
открывает некоторые таблицы dbf
выполняет обработку
закрывает таблицы и ждет следующего задания

таковых приложений запущено несколько
разумеется таблицы открываются не эксклюзивно и контроль на блокировку выполняется
и вроде все работает хорошо,
но ... иногда некоторые таблицы не открываются (ошибка 108)
повторение открытия проходит

есть слабая догадка что одновременное use одного и тогоже файла из нескольких процессов приводит к этому,но уж больно не верится этому

Возможно ли такое?
что же еще может помешать неэксклюзивному открытию таблицы?
Непонятны следующие моменты:
- несколько приложений выполняются на одном компьютере или разных?
- буферизованы ли открываемые таблицы или нет?
- применяются ли к таблицам групповые операции (типа append from...)
...
Рейтинг: 0 / 0
может ли USE подраться с USE ?
    #34628786
АлексейО
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Станислав С...кий
- несколько приложений выполняются на одном компьютере или разных?
На одном ПК
Станислав С...кий
- буферизованы ли открываемые таблицы или нет?
буферизация не используется
Станислав С...кий
- применяются ли к таблицам групповые операции (типа append from...)
неприменяются.
в "особонеоткрывающихся" таблицах делается поиск и одиночные replace и то не в каждую итерацию
...
Рейтинг: 0 / 0
может ли USE подраться с USE ?
    #34628997
АлексейО
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
дополнение:
вроде бы как проблему решает set reproc to 10
но это лишь доказывает, что USE конфликтует с use или lock из другого процесса и со следующей попытки проходит (когда другой процесс сделал свое дело)
...
Рейтинг: 0 / 0
может ли USE подраться с USE ?
    #34629074
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АлексейОвроде бы как проблему решает set reproc to 10...
Не хочется спрашивать о том, читали ли Вы раздел FoxPro Help "Programming for Shared Access"... Там дано очень много полезных советов...

replace блокирут заголовок таблицы и если идет поиск и замещение данных, то без буферризации этот процесс весьма болезненный для многопользовательского режима...

Обычно я вручную проверяю возможность открыть таблицу (100 раз), заблокировать строку (1000 раз), затем блокирую, замещаю данные, сбрасываю буфер (смотрю, чтобы это произошло корректно), разблокирую и делаю паузу (чтобы обойти VFP 8.0 bug в том числе и 108 для других пользователей)...

Хотя все это VFP делает автоматом при установке правильных параметров, описанных в вышеприведенном HELP.

Кроме того Владимир Максимов написал хорошую статью, как правильно работать с многопользовательским доступом...

А транзакции Вы случайно не применяете?

Good luck!
...
Рейтинг: 0 / 0
может ли USE подраться с USE ?
    #34629149
АлексейО
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey ChНе хочется спрашивать о том, читали ли Вы раздел FoxPro Help "Programming for Shared Access"... Там дано очень много полезных советов...


В хелпе пишется об set exclu
о том что replace одной записи блокирует только запись, а не заголовок,
о том что locate ни чего не блокирует
о том что lock блокирует одну запись

но там не сказано, что даже блокировка таблицы (flock) (не говоря уже о lock) мешает её простому открытию
и если это все таки так (вот это то мне и кажется странным и непонятным) то конечно придется мирится и повторять попытки открытия.

вот мне и хотелось услышать(прочитать) что use может подраться с use или lock.
...
Рейтинг: 0 / 0
может ли USE подраться с USE ?
    #34629174
АлексейО
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergey Ch
Обычно я вручную проверяю возможность открыть таблицу (100 раз)
а как это вручную?
Sergey Ch
Кроме того Владимир Максимов написал хорошую статью, как правильно работать с многопользовательским доступом...
подскажите ссылочку пожалуйста
Sergey Ch
А транзакции Вы случайно не применяете?
вообще применяются но к началу открытия этих таблиц они либо завершены, либо откачены
DO WHILE TXNLEVEL() > 0
Roll
Endd
...
Рейтинг: 0 / 0
может ли USE подраться с USE ?
    #34629262
Sergey Ch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а как это вручную?

Очень просто - цикл и внутри Try...Catch Ваше USE и после проверка открылся файл или нет...


подскажите ссылочку пожалуйста
посмотрите тут

вообще применяются но к началу открытия этих таблиц они либо завершены, либо откачены
DO WHILE TXNLEVEL() > 0
Roll
Endd
Вот они то и блокируют таблицу для открытия другим пользователем, особенно без буфферизации пока есть незавершенные транзакции... Мы тут как-то уже обсуждали, какое зло несут в себе транзакции и по этой причине они должны быть как можно короче...
...
Рейтинг: 0 / 0
может ли USE подраться с USE ?
    #34631386
Kruchinin Pahan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АлексейО Sergey Ch
Обычно я вручную проверяю возможность открыть таблицу (100 раз)
а как это вручную?
Sergey Ch
Кроме того Владимир Максимов написал хорошую статью, как правильно работать с многопользовательским доступом...
подскажите ссылочку пожалуйста

Ляпну не в тему, потому как самому кажется, что дело где-то в коде порылось. Но! На абсолютно нормальном, отлаженном коде сам наблюдал такую картину. Проблема была в VMVare, точнее в настроенном для нее Bridge. Глубоко не разбирался, снес вмварь и проблема рассосалась.
Это я к тому, что проблема иногда может быть несколько глубже, чем кажется на первый взгляд.
...
Рейтинг: 0 / 0
может ли USE подраться с USE ?
    #34633842
АлексейО
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kruchinin Pahanчто дело где-то в коде порылось.
т.е. вы считаете что USE не может подратся с чем либо и должно открыть таблицу, в какой бы блокировки с другого процесса она не была
...
Рейтинг: 0 / 0
может ли USE подраться с USE ?
    #34634853
Kruchinin Pahan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АлексейО Kruchinin Pahanчто дело где-то в коде порылось.
т.е. вы считаете что USE не может подратся с чем либо и должно открыть таблицу, в какой бы блокировки с другого процесса она не была
Просто мне некогда конкретней разбираться с этой проблемой: какие команды могут лочить заголовок, как это обходить. Я сообщил, только что в идеально отлаженном коде так же могут возникнуть проблемы из-за внешних факторов. В данном случае, VmVare
...
Рейтинг: 0 / 0
может ли USE подраться с USE ?
    #34636060
Фотография MaestroEv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну я б сначала убрал все транзакции.. наступал на подобную вещь...
...
Рейтинг: 0 / 0
может ли USE подраться с USE ?
    #34636803
АлексейО
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Kruchinin Pahanв идеально отлаженном коде так же могут возникнуть проблемы из-за внешних факторов.
пожалуй именно это мой случай:
через несколько дней проблемма расширилась и углубилась а потом локализовалась на одном компе изъеденом вирусами
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / может ли USE подраться с USE ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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