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

Definição

Reinscreve um participante durável em uma 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 manager, cli::array <System::Byte> ^ recoveryInfo, System::Transactions::IEnlistmentNotification ^ notification);
public static System.Transactions.Enlistment Reenlist (Guid resourceManagerIdentifier, byte[] recoveryInformation, System.Transactions.IEnlistmentNotification enlistmentNotification);
public static System.Transactions.Enlistment Reenlist (Guid manager, byte[] recoveryInfo, System.Transactions.IEnlistmentNotification notification);
static member Reenlist : Guid * byte[] * System.Transactions.IEnlistmentNotification -> System.Transactions.Enlistment
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
Public Shared Function Reenlist (manager As Guid, recoveryInfo As Byte(), notification As IEnlistmentNotification) As Enlistment

Parâmetros

resourceManagerIdentifiermanager
Guid

Um Guid que identifica o gerenciador de recursos exclusivamente.

recoveryInformationrecoveryInfo
Byte[]

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

enlistmentNotificationnotification
IEnlistmentNotification

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

Retornos

Enlistment

Um Enlistment que descreve a inscrição.

Exceções

recoveryInformation é inválido.

- ou - As informações do Gerenciador de Transação em recoveryInformation não correspondem ao gerenciador de transação configurado.

- ou - RecoveryInformation não é reconhecido por System.Transactions.

RecoveryComplete(Guid) já foi chamado para o resourceManagerIdentifier especificado. A nova inscrição foi rejeitada.

O resourceManagerIdentifier não corresponde ao conteúdo das informações de recuperação especificadas em recoveryInformation.

Comentários

Importante

Chamar este método quando você tiver dados não confiáveis é um risco à segurança. Chame esse método apenas quando você tiver dados confiáveis. Para obter mais informações, consulte Validar Todas as Entradas.

Um Gerenciador de recursos facilita a resolução de inscrições duráveis em uma transação, reenlisting o participante de transação após falha de recurso.

O resourceManagerIdentifier parâmetro é usado para rotular consistentemente o participante de uma transação em caso de falha de recurso. Ao chamar o Reenlist método, o gerenciador de recursos deve fornecer o mesmo resourceManagerIdentifier que usado quando ele originalmente chamou o método durante a EnlistDurable inscrição ou um TransactionException é gerado.

Quando um participante é reenlisted usando esse método, os métodos de fase 2 da IEnlistmentNotification que correspondam ao resultado da transação (isto é, Commit , Rollback ou InDoubt ) são chamados conforme apropriado.

Depois que os participantes forem reenlistados com êxito, você deverá chamar RecoveryComplete para concluir a recuperação.

Você só deve chamar esse método quando um gerenciador de recursos for reiniciado por falha. Além disso, você só deve reinscrevê registradas por um Gerenciador de recursos durante a fase de preparação inicial de protocolo 2PC de transações não resolvidas. Qualquer tentativa de chamar esse método em momentos inválidos pode produzir resultados incorretos.

Se o gerenciador de transações falhar e o gerenciador de recursos executar a recuperação apenas um pouco depois de você chamar o Prepared método em uma inscrição na fase 1 do protocolo Two-Phase Commit, o gerenciador de recursos poderá receber o retorno de chamada ou Rollback o InDoubt retorno de chamada.

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

Nota Esse método usa LinkDemand para impedir que ele seja chamado de código não confiável; no entanto, somente o chamador imediato é necessário para possuir o FullTrust conjunto de permissões.

Aplica-se a

Confira também