TransactionManager.Reenlist(Guid, Byte[], IEnlistmentNotification) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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
- 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.