По порядку Middle Транзакции и блокировки обновлено

Порядок работы с данными в транзакции

Вопрос

Расставьте шаги безопасного изменения остатков в своей обработке по порядку.

Попробуйте сами

Расставьте шаги по порядку стрелками.

  1. 1
    Проверить достаточность и сформировать изменения
  2. 2
    Установить исключительную управляемую блокировку на нужные данные
  3. 3
    Прочитать остатки одним запросом
  4. 4
    Выполнить внешние вызовы и уведомления после фиксации
  5. 5
    ЗафиксироватьТранзакцию()
  6. 6
    Записать изменения
  7. 7
    НачатьТранзакцию()
Показать ответ и разбор

Коротко

Блокировка до чтения гарантирует, что прочитанное не изменится до записи. Внешние вызовы после фиксации не держат блокировки и не нуждаются в откате.

Правильный порядок

  1. 1
    НачатьТранзакцию()
  2. 2
    Установить исключительную управляемую блокировку на нужные данные
  3. 3
    Прочитать остатки одним запросом
  4. 4
    Проверить достаточность и сформировать изменения
  5. 5
    Записать изменения
  6. 6
    ЗафиксироватьТранзакцию()
  7. 7
    Выполнить внешние вызовы и уведомления после фиксации

Разбор

Блокировка до чтения гарантирует, что прочитанное не изменится до записи. Внешние вызовы после фиксации не держат блокировки и не нуждаются в откате.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме