Розподілені транзакції - студопедія
Транзакція - послідовність операцій з будь-якими даними, яка або успішно виконується повністю, або не виконується взагалі. У разі неможливості успішно виконати всі дії відбувається повернення до первинних значень всіх змінених протягом транзакції даних (відкат транзакції). Транзакція має володіти такими якостями.
Атомарність. Транзакція виконується за принципом "все або нічого".
Узгодженість. Після успішного завершення або відкоту транзакції всі дані знаходяться в узгодженому стані, їх логічна цілісність не порушена.
Ізоляція. Для об'єктів поза транзакції не видно проміжні стани, які можуть приймати змінні в транзакції дані. З точки зору "зовнішніх" об'єктів, до успішного завершення транзакції вони повинні мати той же стан, в якому знаходилися до її початку.
Постійність. У разі успішності транзакції зроблені зміни повинні мати постійний характер (тобто збережені в енергонезалежній пам'яті).

Мал. 9. Розподілена транзакція
Транзакції є основою додатків, що працюють з базами даних, проте в розподіленої системі може бути недостатньо використання тільки транзакцій систем управління базами даних. Наприклад, в розподіленої системі в транзакції може брати участь кілька розподілених компонент, що працюють з декількома незалежними базами даних (рис. 9).
Розподіленої називається транзакція, що охоплює операції декількох взаємодіючих компонент розподіленої системи. Кожна з цих компонент може працювати з будь-якими СУБД або іншими службами, наприклад, використовувати черги повідомлень, або навіть працювати з файлами. При відкат транзакції всі ці операції повинні бути скасовані. Для цього необхідно виконання двох умов:
проміжна середовище повинне підтримувати управління розподіленими між декількома компонентами транзакціями;
компоненти розподіленої системи не повинні працювати з будь-якими службами або ресурсами, які не можуть брати участь в транзакції.
Розподілені транзакції є найважливішим елементом підтримки цілісності даних в розподіленої системі. Тому для більш широкого їх застосування проміжна середовище може мiстити механiзми, якi при необхідності (і певних витратах часу на написання коду) дозволять використовувати в розподілених транзакцій зовнішні служби, які не підтримують транзакції. Такий механізм називається компенсує менеджером ресурсу (compensating resource manager). Компенсація в даному випадку означає повернення ресурсу до початкового стану при відкат транзакції.
В даний час відбувається формування і стандартизація ще одного поняття, пов'язаного з підтримкою цілісності даних - господарської діяльності (business activity) стосовно до розподілених систем. Діяльність зазвичай є відображенням деякого реального процесу, наприклад, покупки в магазині: від оформлення замовлення до підтвердження доставки кур'єром. Діяльність може включати в себе транзакції (оформлення замовлення покупця, замовлення товару у постачальника, і так далі - до підтвердження доставки покупцем). На відміну від транзакції, час життя якої передбачається коротким, діяльність може тривати протягом дуже довгого часу (наприклад, місяця). Діяльність може підтримувати скасування зроблених змін (наприклад, оформлення повернення товару постачальника при відмові покупця) шляхом використання компенсуючих завдань.