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 вызвать метод после завершения работы диспетчера ресурсов.