IEnlistmentNotification.InDoubt(Enlistment) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Avertit un objet inscrit que l'état d'une transaction est dans le doute.
public:
void InDoubt(System::Transactions::Enlistment ^ enlistment);
public void InDoubt (System.Transactions.Enlistment enlistment);
abstract member InDoubt : System.Transactions.Enlistment -> unit
Public Sub InDoubt (enlistment As Enlistment)
Paramètres
- enlistment
- Enlistment
Objet Enlistment utilisé pour envoyer une réponse au gestionnaire de transactions.
Remarques
Cette méthode est appelée pour les ressources volatiles lorsque le gestionnaire de transactions a appelé une opération de validation en phase unique sur une seule ressource durable, puis que la connexion à la ressource durable a été perdue avant d’obtenir le résultat de la transaction. À ce stade, le résultat de la transaction ne peut pas être déterminé en toute sécurité.
Comme InDoubt est considéré comme un état final pour une transaction, vous ne devez pas appeler Commit ou Rollback après l’appel InDoubtde .
Notes
Votre implémentation de cette méthode pour la ressource volatile doit effectuer toute opération de récupération ou de confinement qu’elle comprend sur les données affectées. Il doit également appeler la Done méthode sur le sur le enlistment
paramètre lorsqu’il a terminé son travail.
Si le gestionnaire de ressources s’est inscrit durablement, mais ne répond pas en appelant Done la méthode, le gestionnaire de transactions n’est pas sûr que le gestionnaire de ressources a reçu l’appel InDoubt . Par conséquent, le gestionnaire de transactions attend toujours une réponse et conserve les informations pertinentes pour cette transaction. Si Done n’est jamais appelé, cette information est conservée indéfiniment en mémoire ou dans une ressource à l’échelle du système. Il en résulte que les ressources ne peuvent pas être récupérées. Dans le cas d’une transaction distribuée, cela peut éventuellement remplir le journal MSDTC, ce qui arrête le processus MSDTC. Dans le cas d’une transaction gérée par System.Transactions, cela entraîne une augmentation progressive et continue de la consommation de mémoire du processus du gestionnaire de ressources. Par conséquent, il est essentiel d’appeler la Done méthode une fois que votre gestionnaire de ressources a terminé votre travail de préparation.