Partager via


IEnlistmentNotification.InDoubt(Enlistment) Méthode

Définition

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.

S’applique à