Partager via


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

Définition

Réinscrit un participant durable dans une transaction.

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

Paramètres

resourceManagerIdentifiermanager
Guid

Guid qui identifie de manière unique le gestionnaire de ressources.

recoveryInformationrecoveryInfo
Byte[]

Contient des informations supplémentaires sur les informations de récupération.

enlistmentNotificationnotification
IEnlistmentNotification

Objet de ressource qui implémente IEnlistmentNotification pour recevoir des notifications.

Retours

Enlistment

Enlistment qui décrit l'inscription.

Exceptions

recoveryInformation n'est pas valide.

  • ou - Les informations du gestionnaire de transactions dans recoveryInformation ne correspondent pas au gestionnaire de transactions configuré.

  • ou - RecoveryInformation n'est pas reconnu par System.Transactions.

RecoveryComplete(Guid) a déjà été appelé pour le resourceManagerIdentifier spécifié. La réinscription est rejetée.

resourceManagerIdentifier ne correspond pas au contenu des informations de récupération spécifiées dans recoveryInformation.

Remarques

Important

L’appel de cette méthode avec des données non approuvées est un risque de sécurité. Appelez cette méthode avec des données approuvées uniquement. Pour plus d’informations, consultez Valider toutes les entrées.

Un gestionnaire de ressources facilite la résolution d’inscriptions durables à une transaction en réinscrivant le participant à la transaction après défaillance de la ressource.

Le resourceManagerIdentifier paramètre est utilisé pour étiqueter de manière cohérente le participant d’une transaction en cas d’échec de ressource. Lors de l’appel de la Reenlist méthode, le gestionnaire de ressources doit fournir le même resourceManagerIdentifier que celui utilisé lors de son appel d’origine lors de l’inscription EnlistDurable ou d’une TransactionException levée.

Lorsqu’un participant est réinscrit à l’aide de cette méthode, les méthodes de phase 2 de IEnlistmentNotification qui correspondent au résultat de la transaction (soit Commit, Rollback ou InDoubt) sont appelées si nécessaire.

Une fois que les participants sont réinscrirés avec succès, vous devez ensuite appeler RecoveryComplete pour terminer la récupération.

Vous devez appeler cette méthode uniquement lorsqu’un gestionnaire de ressources redémarre à partir d’un échec. En outre, vous ne devez réinscrire que des transactions non résolues enregistrées par un gestionnaire de ressources au cours de la phase de préparation initiale d'une validation en deux phases. Toute tentative pour appeler cette méthode à une période incorrecte peut entraîner des résultats erronés.

Si le gestionnaire de transactions échoue et que votre gestionnaire de ressources effectue la récupération seulement une courte fois que vous avez appelé la Prepared méthode sur une inscription dans la phase 1 du protocole de validation Two-Phase, votre gestionnaire de ressources peut recevoir le ou Rollback le InDoubt rappel.

Pour plus d’informations sur la récupération, consultez Exécution de la récupération.

Note Cette méthode utilise LinkDemand pour empêcher son appel de code non approuvé ; toutefois, seul l’appelant immédiat doit posséder le FullTrust jeu d’autorisations.

S’applique à

Voir aussi