|
Управляемая блокировка не на всю транзакцию, а чуть раньше | ☑ | ||
---|---|---|---|---|
0
sdemon72
14.01.22
✎
12:29
|
Скорее всего дурацкий вопрос, но вдруг. Есть условно-длинная транзакция создания некоего документа, внутри которой в цикле происходит обращение к регистру сведений, хранящему порядковые номера некоторых объектов, за следующим номером (если для такого объекта номера еще нет, то добавляется запись в регистр с максимальным номером по регистру +1).
И чтобы разные сеансы не получили один и тот же номер при одновременном обращении, перед чтением регистра я делаю исключительную блокировку на весь регистр (весь, т.к. мне надо получить макс.номер по всему регистру). И после получения нового номера и записи его в регистр, мне уже его держать заблокированным в общем-то не нужно (даже если транзакция будет отменена, пропуски номеров не страшно). Есть какой-то способ снять блокировку регистра, не дожидаясь завершения транзакции? |
|||
1
ИС-2
naïve
14.01.22
✎
12:30
|
Конструкция для изменения ?
ВЫБРАТЬ ABCКлассификацияПокупателей.Период, ABCКлассификацияПокупателей.Регистратор, ABCКлассификацияПокупателей.НомерСтроки, ABCКлассификацияПокупателей.Активность, ABCКлассификацияПокупателей.Контрагент, ABCКлассификацияПокупателей.ABCКлассПокупателя ИЗ РегистрСведений.ABCКлассификацияПокупателей КАК ABCКлассификацияПокупателей ГДЕ ABCКлассификацияПокупателей.Контрагент = &Контрагент ДЛЯ ИЗМЕНЕНИЯ |
|||
2
ДенисЧ
14.01.22
✎
12:33
|
Ну получи номер до транзакции...
|
|||
3
H A D G E H O G s
14.01.22
✎
12:33
|
(0) ФоновоеЗадание с ожиданием завершения
|
|||
4
sdemon72
14.01.22
✎
12:34
|
Режим блокировки управляемый, забыл сказать
|
|||
5
sdemon72
14.01.22
✎
12:35
|
(3) Стесняюсь спросить - предлагаете внутри транзакции запустить фоновое задание и ждать его завершения?
|
|||
6
H A D G E H O G s
14.01.22
✎
12:35
|
(5) Да. Чебынет, это быстро.
|
|||
7
sdemon72
14.01.22
✎
12:39
|
(5) хм, смело... но я бы за такое дал канделябром по голове :))))
|
|||
8
sdemon72
14.01.22
✎
12:39
|
(2) да, тоже вариант...
|
|||
9
sdemon72
14.01.22
✎
12:40
|
Ну штатных механизмов именно снятия блокировки внутри транзакции не существует, как я понимаю?
|
|||
10
Fragster
гуру
14.01.22
✎
12:41
|
(9) да
|
|||
11
sdemon72
14.01.22
✎
12:42
|
Понял, всем спасибо, в т.ч. и за идеи
|
|||
12
2mugik
15.01.22
✎
13:22
|
(0)А он у тебя тот же номер не возьмет? Который в незакрытой транзакции?
|
|||
13
2mugik
15.01.22
✎
13:23
|
(0)т.е. он запишет в базу то что в не закрытой транзакции?
|
|||
14
pechkin
15.01.22
✎
13:28
|
Разбей транзакцию на части: номер и все остальное
|
|||
15
pechkin
15.01.22
✎
13:29
|
Те создал док, закрыл 1 транзакцию.
Во 2 заполнил и провел |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |