|
Управляемые блокировки в УТ11
|
|||
---|---|---|---|
#18+
Смотрю исходники УТ11. И не могу понять вот какую штуку. В части документов например ПоступлениеТоваровУслуг режим управления блокировкой данных стоит Автоматический, а в части например ПорчаТоваров - Управляемый. При этом обработка проведения порчи товаров в части, скажем, свободных остатков точно такая же. Соответственно если в управляемом режиме уровень изоляции уменьшается до READ COMMITED, то можно спокойно два раза в порче товаров списать один и тот же товар. И вообще может я чего то не понимаю, но такое ощущение что в документах режимы управления блокировкой расставлены от балды. Ну и также складывается впечатление, что люди которые писали УТ, решили ну его нафиг этот 1С с его ОРМом, мы раньше под Оракл херачили, здесь будем делать аналогично. То есть там почти вся логика на SELECT'ах и времянках (в проведении того же ПоступлениеТоваровУслуг практически ни одного цикла по данным не вижу). С тем же успехом они могли бы и на Оракл+Дельфи фигачить. Я конечно понимаю производительность все дела, но сопровождаемость и расширяемость это как бы тоже не пустой звук. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2017, 15:42 |
|
Управляемые блокировки в УТ11
|
|||
---|---|---|---|
#18+
Nitro_JunkieСоответственно если в управляемом режиме уровень изоляции уменьшается до READ COMMITED, то можно спокойно два раза в порче товаров списать один и тот же товар. И вообще может я чего то не понимаю, но такое ощущение что в документах режимы управления блокировкой расставлены от балды. в упр. режиме блокировками заведует сервер приложений и что там в базе с изоляцией - по барабану. и обеспечение "не списания" - возлагается на пограмиста ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2017, 15:53 |
|
Управляемые блокировки в УТ11
|
|||
---|---|---|---|
#18+
Пришелец-прорабNitro_JunkieСоответственно если в управляемом режиме уровень изоляции уменьшается до READ COMMITED, то можно спокойно два раза в порче товаров списать один и тот же товар. И вообще может я чего то не понимаю, но такое ощущение что в документах режимы управления блокировкой расставлены от балды. в упр. режиме блокировками заведует сервер приложений и что там в базе с изоляцией - по барабану. и обеспечение "не списания" - возлагается на пограмиста Я знаю что такое управляемый режим блокировок. Я ищу где этот программист УТ обеспечил "не списания". По идее блокировка накладывается в момент ПередЗаписью в регистре СвободныеОстатки. Но во временные таблицы то считывается до этой записи, то есть race condition вполне можно словить: одна транзакция только только заканчивается (но еще не закончилась), а вторая в это время считывает во времянки, и сразу после окончания считывания во времянки, первая заканчивается. И вторая работает с некорректными данными. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2017, 16:08 |
|
Управляемые блокировки в УТ11
|
|||
---|---|---|---|
#18+
Nitro_Junkie, По идее блокировка накладывается в момент ПередЗаписью - это плохая идея. Нонче модно остатки проверять после записи движений. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2017, 11:06 |
|
Управляемые блокировки в УТ11
|
|||
---|---|---|---|
#18+
AHDPNitro_Junkie, По идее блокировка накладывается в момент ПередЗаписью - это плохая идея. Нонче модно остатки проверять после записи движений. модно в одном, самом простом случае - когда достаточно просто записать движения, а потом посмотреть "вываливаемся за 0" или нет более сложные варианты - списание по фифо и т.п. - "по старому" ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2017, 11:13 |
|
Управляемые блокировки в УТ11
|
|||
---|---|---|---|
#18+
Пришелец-прорабAHDPNitro_Junkie, По идее блокировка накладывается в момент ПередЗаписью - это плохая идея. Нонче модно остатки проверять после записи движений. модно в одном, самом простом случае - когда достаточно просто записать движения, а потом посмотреть "вываливаемся за 0" или нет более сложные варианты - списание по фифо и т.п. - "по старому" Да я уже понял. До записи остатки не нужны (не читаются). Просто я не совсем понял когда стоит для документа Режим Автоматический она все равно при чтении shared lock'и в базе вешает? И по какому принципу в УТ эти режимы расставлены? Почему ПорчаТоваров управляемый, а ПоступлениеТоварИУслуг - автоматический? Кстати недавно с саперами разговаривал они тоже от ОРМ в SQL уходят. Но у них конечно не через строковые ТекстыЗапроса все сделано (с ними IDE повесится), у них это в языке. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2017, 10:34 |
|
Управляемые блокировки в УТ11
|
|||
---|---|---|---|
#18+
Nitro_JunkieКстати недавно с саперами разговаривал они тоже от ОРМ в SQL уходят. это не наш метод... 1с еще "ПолуавтоматическийМетодИмениБорисаНуралиева" придумает и пару режим совместимости, засрав голову разработчикам окончательно... ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2017, 10:46 |
|
Управляемые блокировки в УТ11
|
|||
---|---|---|---|
#18+
AHDPNitro_Junkie, По идее блокировка накладывается в момент ПередЗаписью - это плохая идея. Нонче модно остатки проверять после записи движений. Говно идея. Любая база против. Назовите современную. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.11.2017, 17:57 |
|
Управляемые блокировки в УТ11
|
|||
---|---|---|---|
#18+
MKZMAHDPNitro_Junkie, По идее блокировка накладывается в момент ПередЗаписью - это плохая идея. Нонче модно остатки проверять после записи движений. Говно идея. Любая база против. Назовите современную. Не, почему, если остатки пишутся одним update'ом, то exclusive lock во всех БД ЕМНИП накладывается ДО чтения значений в выражении UPDATE (то есть UPDATE SET a=a+1 сначала заблокирует, а потом считает a+1, потом запишет в a и остаток будет корректным, тут конечно исходим из того что остаток по регистру накоплений одни запросом в самом 1с обновляются). Блокировку ПередЗаписью в УТ по идее накладывают чисто для сервера приложений и не для конкретно этого проведения, а для других проведений которые читают этот остаток. Но вообще это конечно все через одно место, для меня загадка как люди это Г дорабатывают не ломая целостность. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2017, 10:16 |
|
Управляемые блокировки в УТ11
|
|||
---|---|---|---|
#18+
Nitro_Junkieодна транзакция только только заканчивается (но еще не закончилась), а вторая в это время откуда там взялась вторая транзакция? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2017, 12:33 |
|
Управляемые блокировки в УТ11
|
|||
---|---|---|---|
#18+
Пришелец-прорабAHDPNitro_Junkie, По идее блокировка накладывается в момент ПередЗаписью - это плохая идея. Нонче модно остатки проверять после записи движений. модно в одном, самом простом случае - когда достаточно просто записать движения, а потом посмотреть "вываливаемся за 0" или нет более сложные варианты - списание по фифо и т.п. - "по старому" для блокировок какая разница, списываешь ты просто цифрами из документа или из фифо? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2017, 12:43 |
|
Управляемые блокировки в УТ11
|
|||
---|---|---|---|
#18+
Nitro_Junkie, что установлено в свойстве конфигурации(в корне) в свойстве "Режим управления блокировкой данных" ? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2017, 12:46 |
|
Управляемые блокировки в УТ11
|
|||
---|---|---|---|
#18+
vi0Пришелец-прорабпропущено... модно в одном, самом простом случае - когда достаточно просто записать движения, а потом посмотреть "вываливаемся за 0" или нет более сложные варианты - списание по фифо и т.п. - "по старому" для блокировок какая разница, списываешь ты просто цифрами из документа или из фифо? мухи отдельно, котлеты отдельно блокировки оптимально накладывать как можно позднее и избегая избыточности модный способ + когда все есть в документе этому способствует - блокировка накладывается в момент записи движений (например) в СвободныеОстатки. записали тут же посмотрели если < 0 = откат а чтобы сделать фифо блокировку надо класть между двумя запросами - первый сгребает номенклатуру из ТЧ, потом блокировка по ней на РН а потом запрос для фифо ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2017, 13:51 |
|
Управляемые блокировки в УТ11
|
|||
---|---|---|---|
#18+
vi0Nitro_Junkieодна транзакция только только заканчивается (но еще не закончилась), а вторая в это время откуда там взялась вторая транзакция? Вторая это другой пользователь. Хотя тут действительно полагаются на то что идет запись и она вешает эксклюзивную блокировку. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2017, 14:59 |
|
Управляемые блокировки в УТ11
|
|||
---|---|---|---|
#18+
vi0Nitro_Junkie, что установлено в свойстве конфигурации(в корне) в свойстве "Режим управления блокировкой данных" ? Я же и писал что в разных документах по разному. А обработки при этом очень похожи в части работы с остатками. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2017, 15:00 |
|
Управляемые блокировки в УТ11
|
|||
---|---|---|---|
#18+
Nitro_Junkievi0Nitro_Junkie, что установлено в свойстве конфигурации(в корне) в свойстве "Режим управления блокировкой данных" ? Я же и писал что в разных документах по разному. А обработки при этом очень похожи в части работы с остатками.я не про документы спросил ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2017, 16:03 |
|
Управляемые блокировки в УТ11
|
|||
---|---|---|---|
#18+
vi0Nitro_Junkieпропущено... Я же и писал что в разных документах по разному. А обработки при этом очень похожи в части работы с остатками.я не про документы спросил В корне УТ ЕМНИП управляемый. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.11.2017, 16:34 |
|
|
start [/forum/topic.php?fid=28&fpage=10&tid=1518441]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
25ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 233ms |
total: | 355ms |
0 / 0 |