|
|
|
может ли USE подраться с USE ?
|
|||
|---|---|---|---|
|
#18+
есть VFP8 приложение (некий робот обработки) открывает некоторые таблицы dbf выполняет обработку закрывает таблицы и ждет следующего задания таковых приложений запущено несколько разумеется таблицы открываются не эксклюзивно и контроль на блокировку выполняется и вроде все работает хорошо, но ... иногда некоторые таблицы не открываются (ошибка 108) повторение открытия проходит есть слабая догадка что одновременное use одного и тогоже файла из нескольких процессов приводит к этому,но уж больно не верится этому Возможно ли такое? что же еще может помешать неэксклюзивному открытию таблицы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 13:27 |
|
||
|
может ли USE подраться с USE ?
|
|||
|---|---|---|---|
|
#18+
АлексейОесть VFP8 приложение (некий робот обработки) открывает некоторые таблицы dbf выполняет обработку закрывает таблицы и ждет следующего задания таковых приложений запущено несколько разумеется таблицы открываются не эксклюзивно и контроль на блокировку выполняется и вроде все работает хорошо, но ... иногда некоторые таблицы не открываются (ошибка 108) повторение открытия проходит есть слабая догадка что одновременное use одного и тогоже файла из нескольких процессов приводит к этому,но уж больно не верится этому Возможно ли такое? что же еще может помешать неэксклюзивному открытию таблицы? Непонятны следующие моменты: - несколько приложений выполняются на одном компьютере или разных? - буферизованы ли открываемые таблицы или нет? - применяются ли к таблицам групповые операции (типа append from...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 13:48 |
|
||
|
может ли USE подраться с USE ?
|
|||
|---|---|---|---|
|
#18+
Станислав С...кий - несколько приложений выполняются на одном компьютере или разных? На одном ПК Станислав С...кий - буферизованы ли открываемые таблицы или нет? буферизация не используется Станислав С...кий - применяются ли к таблицам групповые операции (типа append from...) неприменяются. в "особонеоткрывающихся" таблицах делается поиск и одиночные replace и то не в каждую итерацию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 13:56 |
|
||
|
может ли USE подраться с USE ?
|
|||
|---|---|---|---|
|
#18+
дополнение: вроде бы как проблему решает set reproc to 10 но это лишь доказывает, что USE конфликтует с use или lock из другого процесса и со следующей попытки проходит (когда другой процесс сделал свое дело) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 14:46 |
|
||
|
может ли USE подраться с USE ?
|
|||
|---|---|---|---|
|
#18+
АлексейОвроде бы как проблему решает set reproc to 10... Не хочется спрашивать о том, читали ли Вы раздел FoxPro Help "Programming for Shared Access"... Там дано очень много полезных советов... replace блокирут заголовок таблицы и если идет поиск и замещение данных, то без буферризации этот процесс весьма болезненный для многопользовательского режима... Обычно я вручную проверяю возможность открыть таблицу (100 раз), заблокировать строку (1000 раз), затем блокирую, замещаю данные, сбрасываю буфер (смотрю, чтобы это произошло корректно), разблокирую и делаю паузу (чтобы обойти VFP 8.0 bug в том числе и 108 для других пользователей)... Хотя все это VFP делает автоматом при установке правильных параметров, описанных в вышеприведенном HELP. Кроме того Владимир Максимов написал хорошую статью, как правильно работать с многопользовательским доступом... А транзакции Вы случайно не применяете? Good luck! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 15:08 |
|
||
|
может ли USE подраться с USE ?
|
|||
|---|---|---|---|
|
#18+
Sergey ChНе хочется спрашивать о том, читали ли Вы раздел FoxPro Help "Programming for Shared Access"... Там дано очень много полезных советов... В хелпе пишется об set exclu о том что replace одной записи блокирует только запись, а не заголовок, о том что locate ни чего не блокирует о том что lock блокирует одну запись но там не сказано, что даже блокировка таблицы (flock) (не говоря уже о lock) мешает её простому открытию и если это все таки так (вот это то мне и кажется странным и непонятным) то конечно придется мирится и повторять попытки открытия. вот мне и хотелось услышать(прочитать) что use может подраться с use или lock. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 15:25 |
|
||
|
может ли USE подраться с USE ?
|
|||
|---|---|---|---|
|
#18+
Sergey Ch Обычно я вручную проверяю возможность открыть таблицу (100 раз) а как это вручную? Sergey Ch Кроме того Владимир Максимов написал хорошую статью, как правильно работать с многопользовательским доступом... подскажите ссылочку пожалуйста Sergey Ch А транзакции Вы случайно не применяете? вообще применяются но к началу открытия этих таблиц они либо завершены, либо откачены DO WHILE TXNLEVEL() > 0 Roll Endd ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 15:32 |
|
||
|
может ли USE подраться с USE ?
|
|||
|---|---|---|---|
|
#18+
а как это вручную? Очень просто - цикл и внутри Try...Catch Ваше USE и после проверка открылся файл или нет... подскажите ссылочку пожалуйста посмотрите тут вообще применяются но к началу открытия этих таблиц они либо завершены, либо откачены DO WHILE TXNLEVEL() > 0 Roll Endd Вот они то и блокируют таблицу для открытия другим пользователем, особенно без буфферизации пока есть незавершенные транзакции... Мы тут как-то уже обсуждали, какое зло несут в себе транзакции и по этой причине они должны быть как можно короче... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.06.2007, 15:56 |
|
||
|
может ли USE подраться с USE ?
|
|||
|---|---|---|---|
|
#18+
АлексейО Sergey Ch Обычно я вручную проверяю возможность открыть таблицу (100 раз) а как это вручную? Sergey Ch Кроме того Владимир Максимов написал хорошую статью, как правильно работать с многопользовательским доступом... подскажите ссылочку пожалуйста Ляпну не в тему, потому как самому кажется, что дело где-то в коде порылось. Но! На абсолютно нормальном, отлаженном коде сам наблюдал такую картину. Проблема была в VMVare, точнее в настроенном для нее Bridge. Глубоко не разбирался, снес вмварь и проблема рассосалась. Это я к тому, что проблема иногда может быть несколько глубже, чем кажется на первый взгляд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.07.2007, 10:46 |
|
||
|
может ли USE подраться с USE ?
|
|||
|---|---|---|---|
|
#18+
Kruchinin Pahanчто дело где-то в коде порылось. т.е. вы считаете что USE не может подратся с чем либо и должно открыть таблицу, в какой бы блокировки с другого процесса она не была ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2007, 08:53 |
|
||
|
может ли USE подраться с USE ?
|
|||
|---|---|---|---|
|
#18+
АлексейО Kruchinin Pahanчто дело где-то в коде порылось. т.е. вы считаете что USE не может подратся с чем либо и должно открыть таблицу, в какой бы блокировки с другого процесса она не была Просто мне некогда конкретней разбираться с этой проблемой: какие команды могут лочить заголовок, как это обходить. Я сообщил, только что в идеально отлаженном коде так же могут возникнуть проблемы из-за внешних факторов. В данном случае, VmVare ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2007, 13:35 |
|
||
|
может ли USE подраться с USE ?
|
|||
|---|---|---|---|
|
#18+
Ну я б сначала убрал все транзакции.. наступал на подобную вещь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2007, 18:26 |
|
||
|
может ли USE подраться с USE ?
|
|||
|---|---|---|---|
|
#18+
Kruchinin Pahanв идеально отлаженном коде так же могут возникнуть проблемы из-за внешних факторов. пожалуй именно это мой случай: через несколько дней проблемма расширилась и углубилась а потом локализовалась на одном компе изъеденом вирусами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.07.2007, 09:42 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=34636803&tid=1589062]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
200ms |
get topic data: |
12ms |
get forum data: |
4ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
| others: | 206ms |
| total: | 502ms |

| 0 / 0 |
