Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
21 ноя 2024, 14:09

Конфликт блокировок при выполнении транзакции

Автор MuI_I_Ika, 24 июл 2014, 11:12

0 Пользователей и 1 гость просматривают эту тему.

MuI_I_Ika



Полный текст ошибки: Конфликт блокировок при выполнении транзакции: Транзакция (идентификатор процесса) вызвала взаимоблокировку ресурсов блокировка с другим процессом и стала жертвой взаимоблокировки. Запустите транзакцию повторно.


Блокировка - это процесс, который необходим в работе с базами данных. Блокировка нужна для того чтобы обеспечить неизменность данных на промежуток выполнения какой либо операции. Например, при проведении документа модуль этого документа блокирует таблицу регистра накопления остатки по номенклатуре, которая есть в документе. Это нужно для того, чтобы в тот же самый момент эта номенклатура не была продана другому контрагенту и не возникло отрицательных остатков.


При обнаружении блокировки ресурсов процесс выполняет ожидание освобождения этих ресурсов. По истечению времени ожидания, если ситуация не отработана, то программа может выдать ошибку истечения времени ожидания блокировки.


Взаимная блокировка или взаимоблокировка - это ситуация, когда процессы блокируют ресурсы, необходимые для завершения их задач. Например, у вас есть Процесс1 и Процесс2. Процесс1 последовательно блокирует Таблицу1 и Таблицу3, а Процесс2 последовательно блокирует Таблицу3 и Таблицу1. К тому моменту, когда Процессу2 понадобится таблица1, она будет уже заблокирована Процессом1 и он будет ожидать ее разблокировки. А процесс1 будеот ожидать разблокировки таблицы3, заблокированной процессом2. Оба процесса будут ожидать разблокировки таблиц, которые вместе заблокировали. Ситуация не разрешима произойдет взаимоблокировка.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск