TransactionInterop Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Ułatwia interakcję między składnikami System.Transactions i, które zostały wcześniej napisane w celu interakcji z MSDTC, COM+lub System.EnterpriseServices. Klasa ta nie może być dziedziczona.
public ref class TransactionInterop abstract sealed
public static class TransactionInterop
type TransactionInterop = class
Public Class TransactionInterop
- Dziedziczenie
-
TransactionInterop
Uwagi
Ta klasa udostępnia metody propagacji transakcji. Aby uzyskać więcej informacji na temat działania tego procesu, zobacz Propagacja transakcji.
Korzystając z metod dostarczonych przez tę klasę, można zaangażować się w dwa typy propagacji transakcji, Eksport/Import (model wypychania) i Nadajnik/Odbiornik (model ściągania).
Propagacja eksportu/importu (modelu wypychania) obejmuje następujące kroki:
Na maszynie zdalnej uzyskaj "miejsce pobytu" menedżera transakcji tego komputera, wywołując metodę GetWhereabouts . Następnie można buforować ten fragment informacji na maszynie klienckiej w celu przyszłego użycia.
Wyślij dane zawierające miejsce pobytu do maszyny klienckiej przy użyciu dowolnej preferowanej metody.
Na komputerze klienckim użyj miejsca pobytu, aby "wyeksportować" transakcję do maszyny zdalnej i wygenerować transakcję "cookie". Odbywa się to przez wywołanie GetExportCookie i przekazanie miejsca pobytu maszyny zdalnej.
Wyślij dane zawierające transakcję "cookie" do maszyny zdalnej przy użyciu dowolnej preferowanej metody.
Na komputerze zdalnym użyj transakcji "cookie", aby uzyskać klon transakcji klienta przez wywołanie GetTransactionFromExportCookie metody .
Na maszynie zdalnej użyj transakcji klonowania, aby zarejestrować menedżera zasobów przy użyciu EnlistVolatile metod Transaction lub EnlistDurable klasy .
Propagacja nadajnika/odbiornika (modelu ściągania) obejmuje następujące kroki:
Na komputerze klienckim użycie transakcji generuje odpowiedni "token propagacji", wywołując metodę GetTransmitterPropagationToken.
Wyślij dane zawierające "token propagacji" transakcji do maszyny zdalnej przy użyciu dowolnej preferowanej metody.
Na maszynie zdalnej użyj tokenu propagacji, aby uzyskać klon transakcji klienta przez wywołanie <elementu xref:System.Transactions.TransactionInterop.GetTransactionFromTransmitterPropagationToken%2A.
Model nadajnika/odbiornika zapewnia lepszą wydajność w scenariuszach, w których token transakcji jest wysyłany do maszyny zdalnej, ale maszyna zdalna może nie używać go do uzyskania transakcji. Dzieje się tak, ponieważ transakcja nie jest propagowana, dopóki GetTransactionFromTransmitterPropagationToken nie zostanie wywołana. Inną zaletą jest to, że token propagacji można wysłać do dowolnej maszyny zdalnej, podczas gdy plik cookie eksportu może być używany tylko na maszynie, która dostarczyła miejsce pobytu.
Należy jednak również pamiętać, że miejsce pobytu zdalnych menedżerów transakcji jest hermetyzowane we wszystkich tokenach propagacji, co czyni je większymi niż odpowiadające im pliki cookie transakcji z modelu Eksportuj/Importu.
Pola
PromoterTypeDtc |
Typ rozproszonego procesora transakcji. |
Metody
GetDtcTransaction(Transaction) |
IDtcTransaction Pobiera wystąpienie reprezentujące element Transaction. |
GetExportCookie(Transaction, Byte[]) |
Przekształca obiekt transakcji w plik cookie transakcji eksportu. |
GetTransactionFromDtcTransaction(IDtcTransaction) |
Generuje element Transaction na podstawie określonego IDtcTransactionelementu . |
GetTransactionFromExportCookie(Byte[]) |
Generuje element Transaction na podstawie określonego pliku cookie eksportu. |
GetTransactionFromTransmitterPropagationToken(Byte[]) |
Transaction Generuje wystąpienie z określonego tokenu propagacji nadajnika. |
GetTransmitterPropagationToken(Transaction) |
Generuje token propagacji dla określonego Transactionelementu . |
GetWhereabouts() |
Pobiera miejsce pobytu rozproszonego menedżera transakcji, który System.Transactions używa. |