|
Управляемые блокировки. Что-то не выходит. | ☑ | ||
---|---|---|---|---|
0
alexmobile
06.03.17
✎
08:29
|
Есть оборотный регистр - рег1.
Есть документ который пишет в этот регистр свою табличную часть - тч1 В процедуре припроведении добавил код: Движения.рс_Рег1.Записывать = Истина; Блокировка = Новый БлокировкаДанных; ЭлементБлокировки = Блокировка.Добавить(); ЭлементБлокировки.Область = "РегистрНакопления.рег1"; ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный; ЭлементБлокировки.ИсточникДанных = тч; ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Объект", "Объект"); Блокировка.Заблокировать(); При проведении Ставлю точку останова после Блокировка.Заблокировать();, Провожу док1. Останавливаюсь на точке. В параллельной сесии провожу док2. Объекты в табличной части различны. Получаю сообщение: Конфликт блокировок при выполнении транзакции: Microsoft SQL Server Native Client 11.0: Превышено время ожидания запроса на блокировку. HRESULT=80040E31, SQLSrvr: SQLSTATE=HYT00, state=33, Severity=10, native=1222, line=1 |
|||
1
alexmobile
06.03.17
✎
08:32
|
У регистра измерений несколько, но блокировку я ставлю только по одному. флаг "Использование в итогах" установлен на всех измерениях. Может в этом загводка?
|
|||
2
Spieluhr
06.03.17
✎
10:16
|
таймаут происходит в СУБД, а не в 1С
|
|||
3
тарам пам пам
06.03.17
✎
10:40
|
Проверь режим управления блокировкой данных на конфигурации и на регистре. Может где-то автоматический стоит?
|
|||
4
alexmobile
06.03.17
✎
11:08
|
(3)управляемый
(2)и что делать? |
|||
5
alexmobile
06.03.17
✎
11:09
|
(3)на конфе, автоматический и управляемый
|
|||
6
Windyhead
06.03.17
✎
12:03
|
А в параллельной транзакции на этой же блокировке ожидание?
|
|||
7
alexmobile
06.03.17
✎
12:14
|
(6)Как определить?
|
|||
8
alexmobile
06.03.17
✎
12:17
|
Объекты в документах разные
|
|||
9
Spieluhr
06.03.17
✎
15:20
|
(4) Разделение итогов у регистра включено?
|
|||
10
alexmobile
07.03.17
✎
06:26
|
(9)Да
|
|||
11
alexmobile
07.03.17
✎
07:37
|
Второй день бьюсь. Не ставится блокировка. Вроде все просто, но может какой ньюанс есть?
|
|||
12
alexmobile
07.03.17
✎
08:45
|
СУБД блокирует всю таблицу регистра?
|
|||
13
DmitrO
07.03.17
✎
09:03
|
(4)(5) при проведении, транзакция начинается документом, соответственно при таком режиме конфигурации для того чтобы транзакция началась в управляемом режиме, Управляемый должно стоять у документа, а не регистра.
|
|||
14
alexmobile
07.03.17
✎
09:10
|
(13) у документа тоже стоит управляемый
|
|||
15
DmitrO
07.03.17
✎
09:19
|
(14)а Удаление движений как стоит в метаданных документа?
|
|||
16
alexmobile
07.03.17
✎
09:30
|
Удалять автоматически
|
|||
17
DmitrO
07.03.17
✎
09:31
|
(16)ну вот и ответ
|
|||
18
alexmobile
07.03.17
✎
09:35
|
(17) В обработку удаления нужно тоже блокировки ставить, так?
|
|||
19
DmitrO
07.03.17
✎
09:38
|
(18)вообще, не разу не приходилось
такой вопрос наводит на мысль, что вы не совсем понимаете для чего вы ставите блокировку. Ответьте себе, для чего вообще ее ставить? (ну или можете сюда ответить) |
|||
20
alexmobile
07.03.17
✎
09:43
|
Долго проводится документ. Когда одновременно несколько чел проводят свои доку-ты выходит сообщение о блокировке.
|
|||
21
DmitrO
07.03.17
✎
09:47
|
Это ответ на вопрос для чего может понадобиться переход с автоматических блокировок на управляемые, а я спрашивал не это.
Я спросил для чего блокировка нужна в принципе, как сущность (любая, автоматическая или управляемая - не важно). |
|||
22
DmitrO
07.03.17
✎
10:01
|
Ну тогда я отвечу. Любая блокировка (автоматическая, управляемая, по чтению или исключительная) ставится для того чтобы иметь возможность ПРОЧИТАТЬ данные так, чтобы они какое-то время не изменялись в базе.
Если после установки блокировки данные вы читать не собираетесь (а отмене проведения - это наверняка так), то и ставить блокировку не зачем. А бывает что и при самом проведении тоже не читаем, значит тоже не нужно. |
|||
23
Windyhead
07.03.17
✎
11:06
|
(20) Про разделение итогов читал?
Если в проведении нет проверки остатков, то блокировки тут уж точно не нужны, а для повышения параллельности проверь у регистров флажок разделения итогов. Задумайся над тем что в (22) написано. Ну и заодно прочитай про "Удалять автоматически при отмене проведения" тоже может добавить скорости. |
|||
24
alexmobile
07.03.17
✎
13:48
|
Ок. Спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |