IEnlistmentNotification.Rollback(Enlistment) Método

Definição

Notifica um objeto inscrito de que uma transação está sendo revertida (anulada).Notifies an enlisted object that a transaction is being rolled back (aborted).

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)

Parâmetros

enlistment
Enlistment

Um objeto Enlistment usado para enviar uma resposta para o gerenciador de transação.A 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 quando a transação está sendo revertida (anulada) devido à incapacidade de um ou mais participantes da transação confirmarem a transação.The transaction manager calls this method of an enlisted object when the transaction is being rolled back (aborted) due to the inability of one or more transaction 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 Rollback 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 Rollback 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