Что такое распределенная транзакция? Что такое 2-х фазный коммит (2-phase commit)?

Как мы знаем, транзакция - это набор действий, производимых как одно целое. При таком подходе все операции выполняются как логический модуль по принципу ACID (Atomic, Consistent, Isolated, Durable).
Распределенная транзакция (distributed transaction) - ACID транзакция между двумя или более независимыми транзакционными ресурсами на подобии двух разделенных баз данных. Чтобы транзакция закончилась удачно, все индивидуальные ресурсы должны коммитится удачно. Если хоть одна операция транзакции провалится, вся транзакция должна быть откатана назад. Двухфазовый коммит - это подход для коммита распределенных транзакций в два шага.
Фаза 1 - подготовка: Каждый элемент ресурсов опрашивается на готовность к коммиту - обычно методом сохранения новых данных, но еще НЕ УДАЛЯЯ старые данные.
Фаза 2 - коммит: Если все ресурсы готовы, они все комитятся - после чего старые данные удаляются и транзакция более не откатывается. Двухфазовый коммит удостоверивается в том, что распределенная транзакция может всегда быть вкомичыеной или всегда откатаной, если одна из баз данных рушится. Спецификация XA определяет, как приложение должно использовать менеджер транзакций для координации распределенных транзакций через множество менеджеров ресурсов.
Материалы, которые могут вас заинтересовать
- Как происходит вызов EJB?
- В чем разница между EJB 2.0 и EJB 3.0?
- Можно ли вызывать Runtime.gc() в EJB?
- Websphere. Создание ibm-ejb-jar-bnd.xmi
- Что такое dooming transaction?
- EJB. Что такое уровни изоляции?
- EJB. Атрибуты транзакций.
- Какие неявные сервисы предоставляет EJB контейнер?
- Как EJB взаимодействует со своим контейнером и какие методы в entity beans называются call-back methods?







коммититься с мягким знаком)
Спасибо, поправим
удостоверивается? вкомичыеной? откатаной?
Может лучше перефразировать как
Двухфазный коммит удостоверяется в том, что распределенная транзакция всегда может быть закоммичена (хотя правильнее сказать "зафиксирована"), а в случае проблем с одним из транзакционных ресурсов - отменена.
Подходит грузин к ларьку, где газированную воду продают, и спрашивает:
- Почем у вас воды?
- Не "воды", а "вода".
- Хорошо, дайте мне стакан вода.
- Не "вода", а "воды".
- Вы что, тут грамматиком торгуете, или водом?!
Отправить комментарий