|
Управляемая блокировка не на всю транзакцию, а чуть раньше |
☑ |
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 заполнил и провел
|
|
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой