Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Разделяемый и исключительный режим блокировки          
Max Street Подменю пользователя
сообщение 11.04.13, 10:47
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 13
Спасибо сказали: 0 раз
Рейтинг: 0

Доброго времени суток! Вопрос по управляемым транзакционным блокировкам

Есть всего 2 режима: разделяемый и исключительный. При этом разделяемая блокировка устанавливается для того, чтобы данные не были изменены другими транзакциями. Исключительная блокировка, помимо этого, обеспечивает запрет не только изменения этих данных, но даже их чтения другими транзакциями, устанавливающими управляемые блкировки.

Помогите, пожалуйста, уловить разницу между двумя режимами. Объясните "на пальцах", в каком случае какой режим используется.

Спасибо за внимание. За ответы и советы премного благодарен smile.gif


Petre Подменю пользователя
сообщение 11.04.13, 11:15
Сообщение #2

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2907
Из: Київ, Україна
Спасибо сказали: 1148 раз
Рейтинг: 1230.2

Первый - для чтения, второй - для чтения и дальнейшего изменения (записи).


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

Спасибо сказали: Max Street,

Max Street Подменю пользователя
сообщение 11.04.13, 14:55
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 13
Спасибо сказали: 0 раз
Рейтинг: 0

Спасибо. То есть правильно ли я понимаю, если я только читаю данные регистра, но не изменяю их - накладываю разделяемую блокировку, если я читаю данные регистра, а затем записываю в этот регистр/изменяю записи или удаляю их - накладываю исключительную блокировку?

pablo Подменю пользователя
сообщение 11.04.13, 15:03
Сообщение #4

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

Для чтения данных из регистра не нужно накладывать блокировку. Блокировка вообще нужна только для случаев разделенного доступа по записи к одной и той же записи регистра. Блокировка того или иного вида нужна только при записи данных в регистр.


Signature
Правильно поставленный вопрос содержит до 90% ответа.

Petre Подменю пользователя
сообщение 11.04.13, 15:20
Сообщение #5

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2907
Из: Київ, Україна
Спасибо сказали: 1148 раз
Рейтинг: 1230.2

Лучше идти от обратного:

Если нам нужна блокировка при записи, используем исключительную.
Если нам нужна блокировка при чтении, исключительную использовать не целесообразно - используем разделяемую.
Если нам не нужна блокировка при чтении - не используем.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

Max Street Подменю пользователя
сообщение 11.04.13, 20:49
Сообщение #6

Общительный
**
Группа: Пользователи
Сообщений: 13
Спасибо сказали: 0 раз
Рейтинг: 0

Может я сегодня дико туплю, но объясните, пожалуйста, еще раз - я уже голову сломал smile.gif

С исключительным режимом более менее понятно: при чтении данных из регистра, а потом добалвении новой записи или изменении существующей накладывается исключительная.

Если это правильно, для чего же используется разделяемая блокировка? Ведь

Цитата
при чтении данных из регистра не нужно накладывать блокировку


а при изменении данных - исключительная.

Для чего же тогда разделяемая блокировка? и в каких случаях она используется?


Petre Подменю пользователя
сообщение 12.04.13, 8:41
Сообщение #7

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2907
Из: Київ, Україна
Спасибо сказали: 1148 раз
Рейтинг: 1230.2

Цитата(Max Street @ 11.04.13, 21:49) *
при чтении данных из регистра не нужно накладывать блокировку

Эту фразу надо понимать так: чтобы прочитать таблицу, наложение блокировки вовсе не обязательно.

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


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

Спасибо сказали: Max Street,

Max Street Подменю пользователя
сообщение 12.04.13, 18:41
Сообщение #8

Общительный
**
Группа: Пользователи
Сообщений: 13
Спасибо сказали: 0 раз
Рейтинг: 0

Спасибо. Теперь вроде бы разобрался. В качестве итога: если я изменяю(добавляю/удаляю) записи регистра, то накладываю исключительную. Если требуется лишь прочитать данные, но по какой-либо причине оставить их неизменными до конца транзакции, то накладываю разделяемую блокировку. Правильно?


Petre Подменю пользователя
сообщение 12.04.13, 19:09
Сообщение #9

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2907
Из: Київ, Україна
Спасибо сказали: 1148 раз
Рейтинг: 1230.2

Точно.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

Спасибо сказали: Max Street, Novakel,

Max Street Подменю пользователя
сообщение 12.04.13, 19:19
Сообщение #10

Общительный
**
Группа: Пользователи
Сообщений: 13
Спасибо сказали: 0 раз
Рейтинг: 0

Спасибо большое за помощь smile.gif

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 15.06.24, 0:46
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!