Транзакции
Транзакции
Transaction Server упрощает задачу разработки компонентных приложений за счет модели транзакции. Она предохраняет приложения от проблем, связанных с одновременным обновлением данных или сбоями системы. Вот каковы свойства транзакции.
- Целостность (atomicity) — все обновления, заданные транзакцией, завершаются полностью либо в случае сбоя отменяются, и контекст приобретает первоначальный вид.
- Непротиворечивость (consistency) — при транзакции состояние системы преобразуется корректно, без изменения констант состояния.
- Изолированность (isolation) — параллельные транзакции изолированы от частичных и незавершенных результатов друг друга, что гарантирует непротиворечивость состояния приложения. Менеджеры ресурсов с помощью протоколов синхронизации на основе транзакций изолируют результаты незавершенной работы активных транзакций.
- Завершенность (durability) — завершенная модификация ресурса (например, записи базы данных) сохраняется при сбоях соединений, процессов и системы. Журнал транзакций позволяет восстановить завершенное состояние даже после сбоя дисковых носителей.
Промежуточные состояния транзакции невидимы за ее пределами. Если транзакция завершилась неудачно, она отменяется целиком. Это позволяет разрабатывать компоненты приложения так, как будто транзакции выполняются последовательно и независимо друг от друга.
Компонент приложения можно объявить транзакционным, и в этом случае Transaction Server свяжет транзакции с объектами компонента. При выполнении методов такого объекта соответствующие сервисы менеджеров ресурсов реализуются как транзакции. В эту модель можно включить операции, выполняемые для других объектов Transaction Server, а действия нескольких объектов объединить в одну неделимую транзакцию.