Partager via


TransactionInterop Classe

Définition

Facilite l’interaction entre System.Transactions les composants précédemment écrits pour interagir avec MSDTC, COM+ou System.EnterpriseServices. Cette classe ne peut pas être héritée.

public ref class TransactionInterop abstract sealed
public static class TransactionInterop
type TransactionInterop = class
Public Class TransactionInterop
Héritage
TransactionInterop

Remarques

Cette classe fournit des méthodes pour la propagation des transactions.

À l’aide des méthodes fournies par cette classe, vous pouvez vous engager dans deux types de propagations de transactions, Export/Import (modèle push) et Émetteur/Récepteur (modèle pull).

La propagation d’exportation/importation (modèle push) implique les étapes suivantes :

  1. Sur l’ordinateur distant, obtenez les « emplacements » du gestionnaire de transactions de cet ordinateur en appelant la GetWhereabouts méthode. Vous pouvez ensuite mettre en cache cette information sur l’ordinateur client pour une utilisation ultérieure.

  2. Envoyez les données contenant les emplacements à la machine cliente à l’aide de n’importe quelle méthode préférée.

  3. Sur l’ordinateur client, utilisez l’emplacement où « exporter » la transaction vers l’ordinateur distant et générez un « cookie ». Pour ce faire, appelez GetExportCookie et transmettez l’emplacement de l’ordinateur distant.

  4. Envoyez les données contenant le « cookie » de transaction à l’ordinateur distant à l’aide de n’importe quelle méthode préférée.

  5. Sur l’ordinateur distant, utilisez le « cookie » de la transaction pour obtenir un clone de la transaction cliente en appelant la GetTransactionFromExportCookie méthode.

  6. Sur l’ordinateur distant, utilisez la transaction clone pour inscrire le gestionnaire de ressources à l’aide des méthodes ou EnlistDurable des EnlistVolatile méthodes de la Transaction classe.

La propagation de l’émetteur/récepteur (modèle d’extraction) implique les étapes suivantes :

  • Sur l’ordinateur client, l’utilisation de la transaction génère un « jeton de propagation » correspondant en appelant GetTransmitterPropagationToken.

  • Envoyez les données contenant le « jeton de propagation » de la transaction à l’ordinateur distant à l’aide de n’importe quelle méthode préférée.

  • Sur l’ordinateur distant, utilisez le « jeton de propagation » pour obtenir un clone de la transaction cliente en appelant GetTransactionFromTransmitterPropagationToken.

Le modèle émetteur/récepteur offre de meilleures performances dans les scénarios où le jeton de transaction est envoyé à un ordinateur distant, mais l’ordinateur distant peut ne pas l’utiliser pour obtenir la transaction. Cela est dû au fait que la transaction n’est pas propagée tant qu’elle GetTransactionFromTransmitterPropagationToken n’est pas appelée. Un autre avantage est que le jeton de propagation peut être envoyé à n’importe quel ordinateur distant, tandis que le cookie d’exportation ne peut être utilisé que sur l’ordinateur qui a fourni les emplacements.

Les emplacements des gestionnaires de transactions distants sont encapsulés dans tous les jetons de propagation, ce qui les rend plus volumineux que les cookies de transaction correspondants du modèle d’exportation/importation.

Champs

Nom Description
PromoterTypeDtc

Type du processeur de transactions distribué.

Méthodes

Nom Description
GetDtcTransaction(Transaction)

Obtient une IDtcTransaction instance qui représente un Transaction.

GetExportCookie(Transaction, Byte[])

Transforme un objet transactionnel en cookie de transaction d’exportation.

GetTransactionFromDtcTransaction(IDtcTransaction)

Génère une Transaction valeur à partir d’un objet spécifié IDtcTransaction.

GetTransactionFromExportCookie(Byte[])

Génère un Transaction cookie d’exportation spécifié.

GetTransactionFromTransmitterPropagationToken(Byte[])

Génère une Transaction instance à partir du jeton de propagation de l’émetteur spécifié.

GetTransmitterPropagationToken(Transaction)

Génère un jeton de propagation pour le fichier spécifié Transaction.

GetWhereabouts()

Obtient les emplacements du gestionnaire de transactions distribués qui System.Transactions utilisent.

S’applique à