IEnlistmentNotification.Prepare(PreparingEnlistment) Метод

Определение

Уведомляет включенный в список объект о том, что транзакция подготавливается для фиксации.

public:
 void Prepare(System::Transactions::PreparingEnlistment ^ preparingEnlistment);
public void Prepare (System.Transactions.PreparingEnlistment preparingEnlistment);
abstract member Prepare : System.Transactions.PreparingEnlistment -> unit
Public Sub Prepare (preparingEnlistment As PreparingEnlistment)

Параметры

preparingEnlistment
PreparingEnlistment

Объект PreparingEnlistment, используемый для передачи ответа диспетчеру транзакций.

Комментарии

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

При реализации устойчивого диспетчера ресурсов необходимо записать запись подготовки на этом этапе. Запись должна содержать все необходимые сведения для восстановления. Сюда входит RecoveryInformation свойство, которое передается диспетчеру транзакций в Reenlist методе во время восстановления. Дополнительные сведения о восстановлении см. в разделе "Выполнение восстановления".

Диспетчер ресурсов должен завершить всю работу, которая должна быть завершена, прежде чем вызывать Prepared метод preparingEnlistment параметра, чтобы указать свое голосование за обязательство. Перед получением любого уведомления этапа 2, например фиксации, отката или сомнения, необходимо убедиться, что это сделано. Это связано с тем, что уведомления этапа 2 могут выполняться в одном потоке, который вызвал Prepared метод на этапе 1. Таким образом, после вызова метода Prepared не нужно выполнять никаких действий (например, снимать блокировки), которые должны были быть выполнены перед получением уведомлений второго этапа.

Можно также вызвать метод preparingEnlistment параметра, чтобы указать голос за откат.

Если вы хотите, чтобы объект просто наблюдал и реагировал на ход выполнения транзакции, не участвуя в ней, реализация этого метода должна вызывать Done метод preparingEnlistment параметра, когда он завершил работу. Таким образом, диспетчер ресурсов не получит уведомления этапа 2.

Применяется к