Enlistment.Done Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Indica que o participante da transação concluiu seu trabalho.
public:
void Done();
public void Done ();
member this.Done : unit -> unit
Public Sub Done ()
Comentários
Durante a fase final da confirmação da transação, o gerenciador de transações chama o Commitmétodo ou InDoubt o Rollback participante, dependendo se a transação deve ser confirmada ou revertida. O gerenciador de recursos deve executar qualquer trabalho necessário para concluir a transação e informar ao gerenciador de transações que ela foi concluída chamando o Done método no enlistment
parâmetro.
Se o gerenciador de recursos tiver se inscrito de forma durável, mas não responder pelo método de chamada Done , o gerenciador de transações não terá certeza de que o gerenciador de recursos recebeu a respectiva chamada de notificação. Dessa forma, o gerenciador de transações continua aguardando uma resposta e mantém informações relevantes para essa transação. Se Done nunca for chamada, essa informação será mantida indefinidamente na memória ou em um recurso de todo o sistema. Isso resulta em recursos que não podem ser recuperados. No caso de uma transação distribuída, isso pode, eventualmente, preencher o log do MSDTC que interrompe o processo MSDTC. No caso de uma transação gerenciada por System.Transactions, isso resulta em um aumento gradual e contínuo no consumo de memória do processo do gerenciador de recursos. Portanto, é crucial que você chame o método assim que o Done gerenciador de recursos terminar seu trabalho de preparação.
Um alistamento pode chamar o método a Done qualquer momento antes de ser chamado Prepared na fase de preparação. Ao fazer isso, a inscrição está lançando um voto somente leitura, o que significa que ela vota confirmação sobre a transação, mas não precisa receber o resultado final. Observe que, depois que esse método é chamado, o participante inscrito não recebe mais notificações do gerenciador de transações.