Enlistment.Done Método

Definição

Indica que o participante da transação concluiu o seu trabalho.

public:
 void Done();
public void Done();
member this.Done : unit -> unit
Public Sub Done ()

Observações

Durante a fase final do commit da transação, o gestor da transação chama o Commit, Rollback ou InDoubt o método do participante, dependendo se a transação deve ser comprometida ou revertida. O gestor de recursos deve realizar qualquer trabalho necessário para concluir a transação e depois informar o gestor de transações de que esta terminou, chamando o Done método no enlistment parâmetro.

Se o gestor de recursos se inscrever de forma duradoura, mas não responde chamando Done o método, o gestor de transações não tem a certeza de que o gestor de recursos recebeu a respetiva chamada de notificação. Assim, o gestor de transações mantém-se à espera de uma resposta e mantém informações relevantes para essa transação. Se Done nunca for chamado, esta informação é mantida indefinidamente na memória ou num recurso a nível do sistema. Isto faz com que os recursos não possam ser recuperados. No caso de uma transação distribuída, isto poderia eventualmente preencher o registo MSDTC, o que interrompe o processo MSDTC. No caso de uma transação gerida por System.Transactions, isto resulta num aumento gradual e contínuo do consumo de memória do processo do gestor de recursos. Por isso, é crucial que contacte o Done processo assim que o seu gestor de recursos terminar o seu trabalho de preparação.

Um alistamento pode chamar o Done método a qualquer momento antes de ter iniciado Prepared a fase de preparação. Ao fazê-lo, o alistamento está a emitir um voto apenas de leitura, o que significa que vota o commit na transação, mas não precisa de receber o resultado final. Note-se que, após este método ser chamado, o participante alistado não recebe mais notificações do gestor de transações.

Aplica-se a

Ver também