Как распределенные транзакции работают (например, MSDTC)?

Я думаю, что у вас есть некоторые знания об аппаратной архитектуре, ну, 64-битная архитектура полностью меняется, и значения регистров изменений могут быть защищены для аппаратного или программного уровня.

постарайся поделиться тем, что ты хочешь сделать, твой вопрос не оставил ясности, в чем суть твоей сделки.

13
задан Martin 11 September 2008 в 06:14
поделиться

1 ответ

О "шаге 4":

менеджер транзакций координирует с менеджерами ресурсов, чтобы гарантировать, чтобы все успешно выполнились, чтобы сделать требуемую работу или ни одну из работы, если сделано, таким образом поддержав свойства ACID.

Это, конечно, требует, чтобы все участники обеспечили надлежащие интерфейсы и (безошибочные) реализации. Интерфейс похож неопределенно на это:

public interface ITransactionParticipant {
    bool WouldCommitWork();
    void Commit();
    void Rollback();
}

Менеджер транзакций в разовых фиксацией запросах все участники, готовы ли они фиксировать транзакцию. Участники могут только утверждать это, если они в состоянии фиксировать эту транзакцию под всеми допустимыми состояниями ошибки (проверка, системные ошибки, и т.д.). После того, как все участники утверждали способность фиксировать транзакцию, менеджер отправляет эти Commit() сообщение всем участникам. Если какой-либо участник вместо этого повышает ошибку или испытывает таймаут, целые аварийные прекращения работы транзакции и отдельные участники откатываются.

Этот протокол требует, чтобы участники записали свое целое содержание транзакции прежде, чем утверждать их способность фиксировать. Конечно, это должно быть в специальной локальной структуре журнала транзакций, чтобы быть в состоянии восстановиться с различных видов отказов.

4
ответ дан 2 December 2019 в 02:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: