Как выполнить асинхронную распределенную транзакцию между несколькими экземплярами SQL Server

#c# #sql-server #distributed-transactions #saga #2phase-commit

Вопрос:

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

Например,

  • Задача 1 служба — публикация данных в базе данных приложения
  • Задача 2 служба — публикация данных в централизованной БД
  • Задача 3 обслуживать данные post в базе данных миграции.

Итак, предполагая, что эти три службы выполняются параллельно, и задача 1 завершена, но службы задачи 2 завершились сбоем из-за некоторого исключения. таким образом, из-за этого я обрабатываю ее так, чтобы задача 1 должна была откатить изменение. Мне нужно правильное решение, пожалуйста, дайте мне знать.

Двухфазная фиксация может решить эту проблему.

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

1. Распределенная транзакция — это то, что вы ищете. Дополнительная информация youtu.be/k925c1WN2LA

2. Не могли бы вы уточнить, какие DB и ORM вы используете, и опубликовать пример кода, чтобы я мог написать ответ

3. SQL server как DB amp; Entity frame работает как ORM