Автор Тема: Раздел 10. Взаимоблокировки и методы их исправления  (Прочитано 7925 раз)

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

Droni

  • Модератор
  • Пользователь
  • *****
  • Сообщений: 97
10.1  - 2
10.2  - 2
10.3  - 1 (Взаимоблокировка - это неразрешимый конфликт блокировок, возникающий при работе двух или более сессий 1С:Предприятия. http://kb.1c.ru/articleView.jsp?id=46)
10.4  - 3 (http://kb.1c.ru/articleView.jsp?id=46#case1)
10.5 - 2
10.6 - 2
10.7 - 5
10.8 - 4 (Если не удалось получить полную блокировку, в этот момент укрупнение блокировки не происходит и компонент Database Engine продолжит получать блокировки строк, ключей или страниц. https://msdn.microsoft.com/ru-ru/library/ms184286(v=sql.105).aspx)
10.9  - 1
10.10 - 2 (Проверил, в режиме совместимости с 8.2 получаем сообщенние об ошибке. без режима совместимости (работает не RC а RCSI) взаимоблокировки нет.
Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{Документ.Документ1.МодульОбъекта(29)}: Ошибка при вызове метода контекста (Выполнить)
   Выборка = Запрос.Выполнить().Выбрать();            
по причине:
Ошибка выполнения запроса
по причине:
Конфликт блокировок при выполнении транзакции:
Microsoft SQL Server Native Client 11.0: Транзакция (идентификатор процесса 62) вызвала взаимоблокировку ресурсов блокировка с другим процессом и стала жертвой взаимоблокировки. Запустите транзакцию повторно.
HRESULT=80004005, SQLSrvr: SQLSTATE=40001, state=33, Severity=D, native=1205, line=1
)

10.11 - 1
10.12 - ?3,4
10.13 - 3
10.14 - 2
10.15 - 1
10.16 - 4
10.17 - 2
10.18 - 3 (ЦУП, может, профайлер сам по себе даст только логи без контекстов вызова, ТЖ не фиксирует информацию о блокировках СУБД, можно будет только собрать запросы к СУБД - так что реально разобраться  можно только с помощью ЦУПа)
10.19 - 3
10.20 - ?(Вопрос по взаимоблокировке СУБД, из ответов подходит только 2 по управляемой взаимоблокировке ...)
« Последнее редактирование: Май 11, 2015, 09:29:52 pm от Droni »

st1llman

  • Пользователь
  • **
  • Сообщений: 26
  • ФИО: Дмитрий
10.3 - 1, проверено на edu

Droni

  • Модератор
  • Пользователь
  • *****
  • Сообщений: 97
10.3 - 1, проверено на edu
Спасибо.
На edu отвечаете 100% или как проверяете правильность?

st1llman

  • Пользователь
  • **
  • Сообщений: 26
  • ФИО: Дмитрий
10.3 - 1, проверено на edu
Спасибо.
На edu отвечаете 100% или как проверяете правильность?

1 или 2 раза ответил со 100% результатом, ответы пометил как точно правильные. На следующей неделе планирую сдавать  :)

Platon1C

  • Пользователь
  • **
  • Сообщений: 31
  • ФИО: Андрей
10.1 - 3. "Настольная книга 1С Эксперта", стр. 57. С таким взаимоблокировками нужно бороться одинаковыми порядками захвата ресурсов. Snapshot'ы вызовут другие проблемы (неповторяемое чтение, отрицательные остатки). Использование Snapshot'ов - тонкая тема

Droni

  • Модератор
  • Пользователь
  • *****
  • Сообщений: 97
10.1 - 3. "Настольная книга 1С Эксперта", стр. 57. С таким взаимоблокировками нужно бороться одинаковыми порядками захвата ресурсов. Snapshot'ы вызовут другие проблемы (неповторяемое чтение, отрицательные остатки). Использование Snapshot'ов - тонкая тема
Не смущает, что большинство типовых уже работают  в режиме - без совместимости, т.е. используется RCSI?

Platon1C

  • Пользователь
  • **
  • Сообщений: 31
  • ФИО: Андрей
10.1 - 3. "Настольная книга 1С Эксперта", стр. 57. С таким взаимоблокировками нужно бороться одинаковыми порядками захвата ресурсов. Snapshot'ы вызовут другие проблемы (неповторяемое чтение, отрицательные остатки). Использование Snapshot'ов - тонкая тема
Не смущает, что большинство типовых уже работают  в режиме - без совместимости, т.е. используется RCSI?
А это к вопросу не относится. Переход на RCSI решает, грубо говоря, 80% проблем, но рождает 20%, что приемлемо. А мы говорим о конкретной задаче, для которой есть рекомендация 1С и решение, которое устранит одну критичную проблему и, может быть, даст проблему для другого (третьего) документа, где другой порядок захвата. А может и не даст... А может и в третьем документе порядок поменять?
« Последнее редактирование: Май 11, 2015, 05:27:27 pm от Platon1C »

Platon1C

  • Пользователь
  • **
  • Сообщений: 31
  • ФИО: Андрей

tivanitsky

  • Пользователь
  • **
  • Сообщений: 28
10.19-3

Поддерживаю. Тлоки после тдедлока идут тем же временем и сразу следом. Проверял несколько раз.

Platon1C

  • Пользователь
  • **
  • Сообщений: 31
  • ФИО: Андрей

Zheka

  • Пользователь
  • **
  • Сообщений: 13
С учебного тестирования
10.1 - 3
10.12 - 3
10.18 - 5
10.20 - 2

Нуралиев

  • Пользователь
  • **
  • Сообщений: 66
  • я красавчиг
  • ФИО: Нуралиев
С учебного тестирования
а где его можно пройти, дайте ссылку

Droni

  • Модератор
  • Пользователь
  • *****
  • Сообщений: 97
С учебного тестирования
а где его можно пройти, дайте ссылку
http://edu.1c.ru/dist-training/

Нуралиев

  • Пользователь
  • **
  • Сообщений: 66
  • я красавчиг
  • ФИО: Нуралиев
правильно я понимаю что взаимоблокировка с повышением уровня блокировки может возникнуть только на управляемых блокировках, на блокировках СУБД не может? 10.4
т.к. в СУБД S блокировка снимается сразу после чтения (при уровне изоляции рид коммитед) и если мы повысев уровень изоляции она не будет мешать же т.к. уже снимется

Alexander

  • Пользователь
  • **
  • Сообщений: 23
  • ФИО: Kulikov Alexander
Непонятно с 10.10 - мне не удалось воспроизвести взаимоблокировку (по крайней мере в режиме совместимости с 8.2.16). Кроме того ответ 2 смущает тем что блокировка управляемая (то есть накладывается сервером 1с), а не СУБД.
Более того
- в 8.3 в режиме совместимости 8.2.16 (запись не проиcходит пока не закончится транзакция в первом)
- в 8.2 ожидание возникает на чтении среза.
либо я что то делаю не так либо ... .

РС Измерение: Товар Ресурс: Цена
Проведение - не оперативное

Первым провожу документ с более поздней датой (на пару минут)  - цена=100
Во втором документе цена=101

По ходу проведения выводятся сообщения ...

Первый сеанс
запишем 16.07.2015 11:18:26 (сообщение перед строкой кода: Движения.РС_Тест5.Записать();)
записали 16.07.2015 11:18:26 (после ....)
прочитаем 16.07.2015 11:18:26 (перед:  РегистрыСведений.РС_Тест5.ПолучитьПоследнее)
...
висим в отладчике примерно 10сек ... на строке - РегистрыСведений.РС_Тест5.ПолучитьПоследнее
...
прочитали 100 16.07.2015 11:18:37  (100 - это цена)

Второй сеанс выводит следующие сообщения
запишем 16.07.2015 11:18:31
записали 16.07.2015 11:18:31
прочитаем 16.07.2015 11:18:31
прочитали 100 16.07.2015 11:18:37   (100 - это цена)
« Последнее редактирование: Июль 16, 2015, 01:30:14 pm от Alexander »

Домены .RU/.РФ