TransactionManager.Reenlist(Guid, Byte[], IEnlistmentNotification) Método

Definição

Recruta novamente um participante duradouro numa transação.

public:
 static System::Transactions::Enlistment ^ Reenlist(Guid resourceManagerIdentifier, cli::array <System::Byte> ^ recoveryInformation, System::Transactions::IEnlistmentNotification ^ enlistmentNotification);
public static System.Transactions.Enlistment Reenlist(Guid resourceManagerIdentifier, byte[] recoveryInformation, System.Transactions.IEnlistmentNotification enlistmentNotification);
static member Reenlist : Guid * byte[] * System.Transactions.IEnlistmentNotification -> System.Transactions.Enlistment
Public Shared Function Reenlist (resourceManagerIdentifier As Guid, recoveryInformation As Byte(), enlistmentNotification As IEnlistmentNotification) As Enlistment

Parâmetros

resourceManagerIdentifier
Guid

A Guid que identifica de forma única o gestor de recursos.

recoveryInformation
Byte[]

Contém informações adicionais sobre a recuperação.

enlistmentNotification
IEnlistmentNotification

Um objeto de recurso que implementa IEnlistmentNotification para receber notificações.

Devoluções

E Enlistment isso descreve o alistamento.

Exceções

recoveryInformation é inválido.

-ou-

A informação do Gestor de Transações em recoveryInformation não corresponde ao gestor de transações configurado.

-ou-

recoveryInformation não é reconhecido por System.Transactions.

RecoveryComplete(Guid) já foi chamado para o especificado resourceManagerIdentifier. O reengajamento é rejeitado.

O resourceManagerIdentifier não corresponde ao conteúdo da informação de recuperação especificada em recoveryInformation.

Observações

Importante

Chamar este método com dados não confiáveis é um risco de segurança. Chame este método apenas com dados confiáveis. Para obter mais informações, consulte Validar todas as informações inseridas.

Um gerente de recursos facilita a resolução de alistamentos duráveis em uma transação ao reinscrever o participante da transação após uma falha de recurso.

O resourceManagerIdentifier parâmetro é usado para rotular consistentemente o participante de uma transação no caso de falha de um recurso. Ao chamar o Reenlist método, o gestor de recursos deve fornecer o mesmo resourceManagerIdentifier que usou quando chamou originalmente o EnlistDurable método durante o alistamento, ou TransactionException um é lançado.

Quando um participante é reengajado usando este método, os métodos IEnlistmentNotification da fase 2 correspondentes ao resultado da transação (ou seja, Commit, Rollback, ou InDoubt ) são chamados conforme apropriado.

Depois de os participantes serem reengajados com sucesso, deve então ligar RecoveryComplete para concluir a recuperação.

Só deve chamar este método quando um gestor de recursos reinicia após falhas. Além disso, deve apenas relistar transações não resolvidas registadas por um gestor de recursos durante a fase inicial de Pré-preparação de uma confirmação de duas fases. Qualquer tentativa de chamar esse método em momentos inválidos pode produzir resultados errados.

Se o gestor de transações falhar, e o gestor de recursos realizar a recuperação apenas pouco tempo depois de ter chamado o Prepared método numa entrada na fase 1 do protocolo Two-Phase Commit, o gestor de recursos pode receber o InDoubt ou Rollback o callback.

Para obter mais informações sobre recuperação, consulte Executando recuperação.

Aplica-se a