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

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