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 диспетчера ресурсов.