Partilhar via


IEnlistmentNotification.InDoubt(Enlistment) Método

Definição

Notifica um objeto inscrito de que o status de uma transação está duvidoso.

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 objeto Enlistment usado para enviar uma resposta ao gerenciador de transação.

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.

Observação

Sua implementação desse método para o recurso volátil deve executar qualquer operação de recuperação ou contenção que entender 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 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.

Aplica-se a