Поделиться через


IEnlistmentNotification.Rollback(Enlistment) Метод

Определение

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

public:
 void Rollback(System::Transactions::Enlistment ^ enlistment);
public void Rollback (System.Transactions.Enlistment enlistment);
abstract member Rollback : System.Transactions.Enlistment -> unit
Public Sub Rollback (enlistment As Enlistment)

Параметры

enlistment
Enlistment

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

Комментарии

Диспетчер транзакций вызывает этот метод объекта, включенного в список, при откате (прерывании) транзакции из-за невозможности одного или нескольких участников транзакции зафиксировать транзакцию.

Диспетчер ресурсов должен выполнить все действия, необходимые для завершения транзакции, а затем сообщить TM, что она завершена, вызвав Done метод в параметре enlistment .

Если диспетчер ресурсов завербовался, но не отвечает вызовом Done метода, диспетчер транзакций не будет уверены, что диспетчер ресурсов получил Rollback вызов. Таким образом, диспетчер транзакций продолжает ждать ответа и сохраняет сведения, относящиеся к этой транзакции. Если Done метод не вызывается, эта часть информации хранится в памяти или в системном ресурсе на неопределенный срок. Это приводит к тому, что ресурсы не могут быть освобождены. В случае распределенной транзакции это может в конечном итоге заполнить журнал MSDTC, что останавливает процесс MSDTC. В случае транзакции, управляемой с помощью System.Transactions, это приводит к постепенному и постоянному увеличению потребления памяти процессом диспетчера ресурсов. Поэтому очень важно вызывать метод после завершения подготовки Done диспетчера ресурсов.

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