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


IEnlistmentNotification.Commit(Enlistment) Метод

Определение

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

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

Параметры

enlistment
Enlistment

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

Комментарии

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

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

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

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