IEnlistmentNotification.InDoubt(Enlistment) Método

Definição

Notifica um objeto alistado que o estado 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 gestor de transações.

Observações

Este método é chamado para recursos voláteis quando o gestor de transações invocou uma operação de commit de fase única para um único recurso duradouro, e depois a ligação ao recurso duradouro 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 é considerado um estado final para uma transação, não deve ligar InDoubt nem Commit depois de Rollback ligarInDoubt.

Note

A sua implementação deste método para o recurso volátil deve realizar qualquer operação de recuperação ou contenção que compreenda sobre os dados afetados. Deve também chamar o Done método no enlistment no parâmetro quando terminar o seu trabalho.

Se o gestor de recursos se alistou de forma duradoura, mas não responde através do método de chamada Done , o gestor de transações não tem a certeza de que o gestor de recursos recebeu a InDoubt chamada. 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.

Aplica-se a