Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

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

Существует две группы систем, в которых может применяться компенсационная транзакция :

1. В контексте базы данных это часто легко достигается с помощью транзакций и механизма фиксации / отката . [1] Компенсирующая транзакционная логика может быть реализована как дополнительная поверх базы данных, поддерживающей фиксацию / откат . В этом случае мы можем уменьшить детализацию бизнес-транзакций.

2. Для систем без доступного механизма фиксации / отката можно отменить неудачную транзакцию с помощью компенсирующей транзакции , которая вернет систему в исходное состояние. Как правило, это всего лишь обходной путь, который необходимо реализовать вручную и не может гарантировать, что система всегда будет находиться в согласованном состоянии. Разработчику системы может потребоваться подумать о том, что произойдет, если компенсационная транзакция также не удастся.

Компенсационные транзакции также используются в случае, если транзакция является долгоживущей (обычно называемой транзакцией Saga ), например, в бизнес-процессе, требующем ввода данных пользователем. В таких случаях данные будут сохранены в постоянном хранилище, но впоследствии может потребоваться откат, возможно, из-за того, что пользователь решил отменить операцию. В отличие от обычных откатов, для отката долгоживущей транзакции и восстановления системы в исходное состояние обычно требуется конкретная бизнес-логика. Этот тип транзакции отличается от распределенных транзакций (часто реализуемых с использованием протокола двухфазной фиксации ), потому что, хотя оба типа транзакций могут привести к обновлению нескольких хранилищ данных, компенсирующие транзакции позволяет обновлять данные в течение длительного периода времени.

Компенсационные транзакции часто проектируются в Web-сервисы, которые участвуют в выполнении бизнес-процессов, являющихся частью решения на основе сервис-ориентированной архитектуры .

См. Также [ править ]

Ссылки [ править ]

  1. ^ Грей, Джим (июнь 1981). «Концепция сделки: достоинства и ограничения». Труды конференции по очень большим базам данных .