TransactionManager.Reenlist(Guid, Byte[], IEnlistmentNotification) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
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.