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