IEnlistmentNotification.InDoubt(Enlistment) Método

Definição

Notifica um objeto inscrito de que o status de uma transação está em dúvida.

public:
 void InDoubt(System::Transactions::Enlistment ^ enlistment);
public void InDoubt(System.Transactions.Enlistment enlistment);
abstract member InDoubt : System.Transactions.Enlistment -> unit
Public Sub InDoubt (enlistment As Enlistment)

Parâmetros

enlistment
Enlistment

Um Enlistment objeto usado para enviar uma resposta ao gerenciador de transações.

Comentários

Esse método é chamado para recursos voláteis quando o gerenciador de transações invoca uma única operação de confirmação de fase para um único recurso durável e, em seguida, a conexão com o recurso durável foi perdida antes de obter o resultado da transação. Nesse ponto, o resultado da transação não pode ser determinado com segurança.

Como InDoubt é considerado um estado final para uma transação, você não deve ligar Commit ou Rollback depois de chamar InDoubt.

Note

Sua implementação desse método para o recurso volátil deve executar qualquer operação de recuperação ou contenção que ele entenda nos dados afetados. Ele também deve chamar o Done método no enlistment parâmetro quando terminar seu trabalho.

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 InDoubt chamada. 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 chamado, essa informação será mantida indefinidamente na memória ou em um recurso em todo o sistema. Isso faz com que os recursos não possam ser recuperados. No caso de uma transação distribuída, isso pode eventualmente preencher o log do MSDTC, o que interrompe o processo do 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 depois que o Done gerenciador de recursos terminar seu trabalho de preparação.

Aplica-se a