Главная » Spring » Знакомство с транзакциями Spring

0

Продемонстрируем применение транзакций на примере покупки билета в кино. Процесс покупки обычно включает в себя следующие операции:

# проверяется наличие свободных мест в зале;

# для каждого купленного билета количество свободных мест уменьшается на 1;

#  вы оплачиваете билет;

#  билет передается вам.

Если все в порядке, вы получите удовольствие от просмотра блок- бастера, а кинотеатр станет на несколько долларов богаче. Но что, если случится что-то непредвиденное? Например, если во время оплаты кредитной картой выяснится, что вы превысили свой ли-

мит? Вне всяких сомнений, вы не получите билета, а кинотеатр не получит денег. Если число свободных мест не будет восстановлено в значение, предшествовавшее покупке, произойдет «утечка» свобод- ных мест (и кинотеатр рискует недополучить прибыль). Или пред- ставьте, что может произойти, если все операции прошли успешно, но операция выдачи билета не выполнилась. Вы потеряли бы не- сколько долларов и довольствовались бы просмотром повторных показов по кабельному телевидению.

Чтобы гарантировать, что ни вы, ни кинотеатр ничего не потеряе- те, все операции должны выполняться в рамках транзакции. Так как транзакция рассматривает все заключенные в нее операции как единое действие, она гарантирует, что либо будут выполнены все операции, либо будет произведена отмена успевших выполниться операций, как если бы ничего и не произошло. Действие транзакции иллюстрируется на рис. 7.1.

Рис. 7.1. Операции, составляющие покупку билета в кинотеатр, либо должны быть выполнены все, либо ни одна из них.

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

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

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

нятиями. Рассмотрим четыре фактора, которыми руководствуются транзакции, и посмотрим, как они действуют.

Источник:   Уоллс К., Spring в действии. – М.: ДМК Пресс, 2013. – 752 с.: ил.

По теме:

  • Комментарии