Имя: Пароль:
1C
1С v8
по поводу конфликта блокировок
0 Дева
 
31.08.16
17:22
Подскажите с вопросом конфликта блокировок. У нас в базе одновременно работает около 80 человек, есть регистр сведений, в который необходимо писать при записи почти всех документов. Возможно ли избежать этой проблемы (конфликт блокировок) или лучше разделять как-то (для каждого типа документов отдельный регистр). Из регистра при записи ничего читать не надо
1 Лефмихалыч
 
31.08.16
17:24
Составьте график записи документов...
2 Зая Бусечка
 
31.08.16
17:26
Открой для себя управляемые блокировки
3 polosov
 
31.08.16
17:28
(0) СУБД какая?
4 Господин ПЖ
 
31.08.16
17:30
надеюсь файловая...
5 Неверный Параметр И
 
31.08.16
17:32
(0) Вы уже используете модный тренд по модальным диалогам в транзакциях?
6 polosov
 
31.08.16
17:33
(0) Если у вас реализован лог работы юзверей на РС, то переделывайте на текстовый файлик, по типу журнала регистрации.
7 floody
 
31.08.16
18:15
Какой у вас конфликт-то? Таймауты?
8 hitodom
 
31.08.16
18:26
вообще то запись в регистр не должна конфликтовать
9 Cyberhawk
 
31.08.16
18:27
Писать в регистр ближе к концу транзакции
10 Jija Grenkov
 
31.08.16
21:57
1. Управляемые блокировки, без блокировки.
2. Писать вне транзакции (например в событии послеЗаписиНаСервере)

У регистра должно быть измерение с уникальным значением документа (ссылка на документ)
11 Cyberhawk
 
31.08.16
22:50
(10) А как для пункта 2 обеспечить "неделимость" при, например, сбое в коде формы? Т.е. объект запишется в БД, а в регистре автора запись не появится - не комильфо?
12 Jija Grenkov
 
31.08.16
23:03
(11) Автор предоставил мало инфы. Возможно в его случае неделимостью можно принебречь. То есть не страшно, если пару записей в месяц потеряются
13 Дева
 
01.09.16
17:43
(3) postgresql
обычное приложение
на данном регистре включен режим управляемых блокировок
(10) 1) имеете ввиду РежимБлокировкиДанных.Разделяемый?
14 Лефмихалыч
 
01.09.16
17:44
(13) а откуда уверенность, что блокировки именно на записи в этот регистр возникают?
15 Fragster
 
гуру
01.09.16
17:47
(13) если данный режим включен только на регистр, а в целом на документ - автоматический, то писать в этот регистр надо, например, в фоновом задании, стартованном из транзакции записи, чтобы транзакция записи в данный регистр была управляемая, а не автоматическая (пронаслдедованная от транзакции записи документа).
16 Fragster
 
гуру
01.09.16
17:47
стартованном из транзакции записи документа
17 Fragster
 
гуру
01.09.16
17:48
главный вопрос в том, как контролировать откат транзакции записи документа
18 Дева
 
02.09.16
10:09
(6) как в случае с записью в файл проследить что запись действительно завершена? есть куча подписок на событие "перед записью", "при записи", "при проведении", где возможен отказ
19 Дева
 
02.09.16
11:47
(7)ApplicationExclusiveLock
20 polosov
 
06.09.16
16:44
(18) Пиши лучше в ЖР. Свое городить - только тормоза добавлять.
21 ptiz
 
06.09.16
17:08
(0) "Возможно ли избежать этой проблемы (конфликт блокировок) " - блокировки вообще не должны возникать при правильном алгоритме записи в этот регистр.
22 ptiz
 
06.09.16
17:09
Скажу страшную вещь - лог можно вести на основе справочника, а не регистра, тогда не будет проблем с уникальностью записи (и блокировкой) вообще.
23 Fragster
 
гуру
06.09.16
17:10
(21) ну, блокировки возникают в результате неправильного (разного в разных транзакциях) порядка захвата ресурсов. обеспечить это в режиме изоляции serializable (который в постгре в автоматическом режиме) проблематично
24 Fragster
 
гуру
06.09.16
17:10
(22) а вот фиг
25 ptiz
 
06.09.16
17:30
(24) Почему?
26 Fragster
 
гуру
06.09.16
17:43
(25) потому что в постгре в автоматическом режиме блокировок уровень изоляции serializable
27 Necessitudo
 
06.09.16
18:25
(26) А для объектных  сущностей не repeatable read?
28 Дева
 
21.09.16
10:24
И всё-таки спас перевод конфигурации на управляемые блокировки
29 Cyberhawk
 
21.09.16
11:30
(28) Подробнее
30 Дева
 
21.09.16
14:02
(29) в свойствах конфигурации поставила "режим управления блокировкой данных" на "Управляемый".
Правда появилась новая проблема. Теперь пишет:
Превышено максимальное время ожидания предоставления блокировки
=(
31 H A D G E H O G s
 
21.09.16
14:10
sweet
Позовите специалиста.
32 Дева
 
21.09.16
14:43
а нормальные советы имеются?
33 H A D G E H O G s
 
21.09.16
14:52
(32) Советы вам не помогут.
34 Дева
 
21.09.16
14:58
(33) грубиян, идите, пожалуйста, в другую тему
35 Necessitudo
 
21.09.16
16:02
(34) А галоперидол?
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан