Lire en anglais

Partager via


TransactionInterop Classe

Définition

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

public static class TransactionInterop
Héritage
TransactionInterop

Remarques

Cette classe fournit des méthodes pour la propagation des transactions. Pour plus d’informations sur le fonctionnement de ce processus, consultez 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 Export/Import (modèle push) implique les étapes suivantes :

  1. Sur l’ordinateur distant, obtenez le « emplacement » 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 localisations à l’ordinateur client à l’aide de n’importe quelle méthode par défaut.

  3. Sur l’ordinateur client, utilisez l’emplacement où se trouve pour « exporter » la transaction vers l’ordinateur distant et générer un « cookie » de transaction. 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 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 EnlistVolatile méthodes ou EnlistDurable de la Transaction classe .

La propagation de l’émetteur/récepteur (modèle de tirage) 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 <xref:System.Transactions.TransactionInterop.GetTransactionFromTransmitterPropagationToken%2A.

Le modèle émetteur/récepteur offre de meilleures performances dans les scénarios où le jeton de transaction est envoyé à une machine distante, 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 n’est GetTransactionFromTransmitterPropagationToken pas appelée. Un autre avantage est que le jeton de propagation peut être envoyé à n’importe quelle machine distante, tandis que le cookie d’exportation ne peut être utilisé que sur l’ordinateur qui a fourni les localisations.

Toutefois, vous devez également noter que 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

PromoterTypeDtc

Type du processeur de transaction distribuée.

Méthodes

GetDtcTransaction(Transaction)

Obtient une instance de IDtcTransaction qui représente un Transaction.

GetExportCookie(Transaction, Byte[])

Transforme un objet de transaction en cookie de transaction d'exportation.

GetTransactionFromDtcTransaction(IDtcTransaction)

Génère un Transaction à partir du IDtcTransaction spécifié.

GetTransactionFromExportCookie(Byte[])

Génère un Transaction à partir du cookie d'exportation spécifié.

GetTransactionFromTransmitterPropagationToken(Byte[])

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

GetTransmitterPropagationToken(Transaction)

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

GetWhereabouts()

Obtient le lieu du gestionnaire de transactions distribué utilisé par System.Transactions.

S’applique à

Produit Versions
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1