Имя: Пароль:
1C
1С v8
Несовместимые блокировки в 1С
,
0 breezee
 
07.10.17
13:02
Добрый день! Подскажите, пожалуйста, что значит "блокировки несовместимы"? Когда они совместимы? Нашел только сам термин на ИТС, а значение термина не нашел.
1 H A D G E H O G s
 
07.10.17
13:04
Значит, что на ресурс нельзя наложить 2 блокировки.
2 breezee
 
07.10.17
13:30
(1) На "ресурс" в значении поля таблицы sql а не в значении ресурса регистра 1С?
Тогда все блокировки, у которых пересекаются поля блокирования - несовместимы?
3 H A D G E H O G s
 
07.10.17
13:37
(2) Пофиг. Блокировка - универсальное понятие, нужно знать контекст. В среде sql порядка 30 видов блокировок, и, я не скажу тебе сходу таблицу совместимости.
4 H A D G E H O G s
 
07.10.17
13:39
В 1с есть объектные и транзакционные (управляемые) блокировки.
5 H A D G E H O G s
 
07.10.17
13:39
Вам каких вешать?
6 Злопчинский
 
07.10.17
14:12
ну там, в 1с обычно не взвешивают, а валят кучей.. перегруз получался... поэтому решили валить маленькими порциями по одной ложечке... пока клиент не скажет "достаточно..."
7 breezee
 
07.10.17
14:45
(4) Мне по управляемым
8 Cyberhawk
 
07.10.17
15:18
(7) Еще есть разница в 8.2 и 8.3 :) Вот картинка, сам иногда пользовался: http://catalog.mista.ru/upload/iblock/401/401ee8ef17b53ab8d0b57275bf7814f9.jpg
9 H A D G E H O G s
 
07.10.17
15:45
(8) Немного неправильная таблица
10 H A D G E H O G s
 
07.10.17
15:46
В 8.2, при Запрос.Выполнить() в управляемом режиме S-блокировка накладывается только на момент выполнения запроса, а не до конца транзакции
11 H A D G E H O G s
 
07.10.17
15:52
Но табличка - годная, прям самый смак.
Но если ты пытался спроектировать сам многопользовательскую/многопоточную систему - ты к этому со временем сам приходил
1) Начав с безблокировок
2) Получив коллизии общих ресурсов
3) Исправив коллизии X блокировками
4) Напоровшись на проблемы производительности
5) Обрезав время жизни X-блокировок
6) Не дойдя до s-блокировок, ибо их нет на уровне mutex/critical section, бросить это дело, ибо игра не стоит свеч пилить свой механизм s-блокировок.
12 Cyberhawk
 
07.10.17
16:37
(10) Ты кажется забыл добавить, что в RCSI на 8.2 блокировки вообще в этом  - Запрос.Выполнить() - случае не будет
13 Cyberhawk
 
07.10.17
16:40
А по поводу Х-блокировок из (11) можно еще добавить, что нефиг ставить документам свойство "Удалять движения автоматически"
14 H A D G E H O G s
 
07.10.17
16:57
(10) Будет, как не будет?
15 H A D G E H O G s
 
07.10.17
17:00
(12) Мы же внутри транзакции, ведь так?
Если не будет S блокировки - зачем бы тогда заморачиваться с snapshot ?
16 H A D G E H O G s
 
07.10.17
17:02
(12) Вот при ReadUncommited S-блокировки не будет.
17 H A D G E H O G s
 
07.10.17
17:03
Вот еще годнейшая статья по жизни блокировок SQL
http://cascade-group.com.ua/1c-blocks-mssql/
18 H A D G E H O G s
 
07.10.17
17:04
Временные графики шикарны
19 H A D G E H O G s
 
07.10.17
17:10
В УТ11.2, кстати проблема ожиданий на блокировках на отгрузочном контуре !почти! решена.

1 проблема возникают, когда формируется счет-фактура на РТУ - при формировании стартует задание пересчета взаиморасчетов и идет монопольное увеличение константы номера задания - узкое место, но блокировка краткая.

2 проблема возникает при заполнении пздблск таблицы Видов Запасов, при которой РН ТоварыОрганизации блокируется прям при самом начале транзакции проведения.

Я прям в шоке, будет посмотреть 11.4.
20 ildary
 
07.10.17
22:17
(19) 1 проблема может быть еще шикарнее - задания на пересчет заносятся в регистр с датой НачалоМесяца, что может вызывать первого числа следующего месяца полное зависание базы при нажатии кнопки "Создать С/Ф".
Независимо от того, куда вы едете — это в гору и против ветра!