Имя: Пароль:
1C
1С v8
v8 Управляемые блокировки
0 Антон Мак
 
27.02.12
14:28
Добрый день.

Если мы установим для документа и всех его регистров режим управляемых блокировок, но не пропишем для всех регистров блокировку с помощью объекта БлокировкаДанных, будут ли они блокироваться и как?
1 dimaldinho
 
27.02.12
15:01
Да, будут. При чтении регистров - разделяемая на время чтения, при записи - исключительная до конца транзакции.
2 dimaldinho
 
27.02.12
15:01
UPD При чтении регистров в транзакции - разделяемая на время чтения
3 fisher
 
27.02.12
15:06
С прикладной точки зрения - можно сказать что не будет блокировок. Только в рамках обеспечения read commited.
4 Антон Мак
 
27.02.12
15:09
т.е. блокировку нужно прописывать для всех регистров, оставлять как есть нельзя?
5 Господин ПЖ
 
27.02.12
15:10
(1) >при записи - исключительная до конца транзакции.

там readcommited - на время операции
6 Господин ПЖ
 
27.02.12
15:10
(4) смотря чего получить хотите
7 fisher
 
27.02.12
15:19
(4) Исключительно из логики. Т.е. читая какие-то данные в транзакции тут же думай о том так ли это надо, почему именно в этот момент и критично ли будет если они поменяются после чтения. Далеко не для каждого алгоритма нужно прописывать блокировки.
(5) Не-не-не. До конца транзакции.
8 Господин ПЖ
 
27.02.12
16:07
(7) http://www.rsdn.ru/article/db/mssqllocks.xml#EKOAG

Уровни READUNCOMMITTED и READCOMMITTED соответствуют одноименным уровням изоляции транзакций, только пишутся слитно. Блокировки при использовании этих уровней снимаются сразу после выполнения команды. В случае хинтов REPEATABLEREAD и SERIALIZABLE блокировки остаются до конца транзакции.

>До конца транзакции.

а sp_lock это подтверждает? я насколько помню - никаких блокировок уже нет если застопорить проведение в отладчике
9 fisher
 
27.02.12
16:34
(8) Штатно просто запись регистров идет неявно при завершении транзакции проведения. Если не блокировать после записи до конца транзакции - тогда не избежать фантомов (соседняя транзакция прочитала, а потом первая откатилась).
10 Господин ПЖ
 
27.02.12
16:47
(9) readcommit проблему фантомов и не решает...
11 fisher
 
27.02.12
17:21
(10) Это не те фантомы.
12 fisher
 
27.02.12
17:22
Хотя я уже начал сомневаться. Чуток попозже попробую разобраться.
13 Господин ПЖ
 
27.02.12
17:25
(11) грязное чтение <> фантомы.
14 Пип Пибип
 
27.02.12
17:26
Тема сия волнует меня, до глубины души