IEnlistmentNotification.Commit(Enlistment) Método

Definição

Notifica um objeto inscrito de que uma transação está sendo confirmada.Notifies an enlisted object that a transaction is being committed.

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)

Parâmetros

enlistment
Enlistment

Um objeto Enlistment usado para enviar uma resposta ao gerenciador de transação.An Enlistment object used to send a response to the transaction manager.

Comentários

O Gerenciador de transações chama esse método de um objeto inscrito durante a segunda fase de um compromisso, quando ele instrui todos os participantes a confirmar a transação.The transaction manager calls this method of an enlisted object during the second phase of a commitment, when it instructs all participants to commit the transaction.

O Gerenciador de recursos deve executar qualquer trabalho necessário para concluir a transação e, em seguida, informar ao TM que ele terminou chamando o Done método no enlistment parâmetro.The resource manager should perform any work necessary to finish the transaction and then inform the TM that it has finished by calling the Done method on the enlistment parameter.

Se o Gerenciador de recursos tiver inscrito permanentemente, mas não responder chamando Done o método, o Gerenciador de transações não terá certeza de que o Gerenciador de recursos recebeu a Commit chamada.If the resource manager has enlisted durably, but does not respond by calling Done method, the transaction manager is unsure that the resource manager has received the Commit call. Assim, o Gerenciador de transações continua aguardando uma resposta e mantém as informações relevantes para essa transação.As such, the transaction manager keeps waiting for a response, and maintains information relevant to this transaction. Se Done nunca for chamado, essa informação será mantida indefinidamente na memória ou em um recurso de todo o sistema.If Done is never called, this piece of information is kept around indefinitely in memory or in a system-wide resource. Isso resulta em recursos que não podem ser recuperados.This results in resources not being able to be reclaimed. No caso de uma transação distribuída, isso pode, eventualmente, preencher o log do MSDTC que interrompe o processo do MSDTC.In the case of a distributed transaction, this could eventually fill the MSDTC log which halts the MSDTC process. No caso de uma transação gerenciada pelo System.Transactions , isso resulta em um aumento gradual e contínuo no consumo de memória do processo do Gerenciador de recursos.In the case of a transaction managed by System.Transactions, this results in a gradual and continual increase in the memory consumption of the resource manager's process. Portanto, é crucial que você chame o Done método depois que o Gerenciador de recursos for concluído com seu trabalho de preparação.Therefore, it is crucial that you call the Done method once your resource manager is done with your prepare work.

Aplica-se a