TransactionInterop Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Облегчает взаимодействие между System.Transactions и компонентами, которые были разработаны ранее для взаимодействия с MSDTC, COM+ или System.EnterpriseServices. Этот класс не наследуется.
public ref class TransactionInterop abstract sealed
public static class TransactionInterop
type TransactionInterop = class
Public Class TransactionInterop
- Наследование
-
TransactionInterop
Комментарии
Этот класс предоставляет методы для распространения транзакций. Дополнительные сведения о том, как работает этот процесс, см. в разделе Распространение транзакций.
Используя методы, предоставляемые этим классом, можно использовать два типа распространения транзакций: экспорт и импорт (модель отправки) и передатчик/приемник (модель извлечения).
Распространение модели экспорта и импорта (принудительной отправки) включает следующие действия.
На удаленном компьютере получите сведения о местонахождении диспетчера транзакций этого компьютера, вызвав GetWhereabouts метод . Затем эту информацию можно кэшировать на клиентском компьютере для дальнейшего использования.
Отправьте данные, содержащие сведения о местонахождении, на клиентский компьютер с помощью любого предпочтительного метода.
На клиентском компьютере используйте сведения о местонахождении, чтобы "экспортировать" транзакцию на удаленный компьютер и создать транзакцию "cookie". Это делается путем вызова GetExportCookie и передачи местонахождения удаленного компьютера.
Отправьте данные, содержащие файл cookie транзакции, на удаленный компьютер с помощью любого предпочтительного метода.
На удаленном компьютере используйте транзакцию cookie, чтобы получить клон транзакции клиента, вызвав GetTransactionFromExportCookie метод .
На удаленном компьютере используйте транзакцию клонирования, чтобы завербовать диспетчер ресурсов с помощью EnlistVolatile методов Transaction или EnlistDurable класса .
Распространение передатчика и приемника (модель извлечения) включает следующие действия.
На клиентском компьютере при использовании транзакции создается соответствующий маркер распространения путем вызова GetTransmitterPropagationToken.
Отправьте данные, содержащие маркер распространения транзакции, на удаленный компьютер, используя любой предпочтительный метод.
На удаленном компьютере используйте маркер распространения, чтобы получить клон клиентской транзакции, вызвав <xref:System.Transactions.TransactionInterop.GetTransactionFromTransmitterPropagationToken%2A.
Модель передатчика или приемника обеспечивает более высокую производительность в сценариях, когда маркер транзакции отправляется на удаленный компьютер, но удаленный компьютер может не использовать его для получения транзакции. Это связано с тем, что транзакция не распространяется до вызова GetTransactionFromTransmitterPropagationToken . Еще одним преимуществом является то, что маркер распространения можно отправить на любой удаленный компьютер, а файл cookie экспорта можно использовать только на компьютере, на котором указаны сведения о местонахождении.
Однако следует также отметить, что местонахождение удаленных диспетчеров транзакций инкапсулируется во всех маркерах распространения, что делает их больше, чем соответствующие файлы cookie транзакций из модели экспорта и импорта.
Поля
PromoterTypeDtc |
Тип обработчика распределенных транзакций. |
Методы
GetDtcTransaction(Transaction) |
Получает экземпляр IDtcTransaction, который представляет Transaction. |
GetExportCookie(Transaction, Byte[]) |
Преобразует объект транзакции в файл cookie транзакции экспорта. |
GetTransactionFromDtcTransaction(IDtcTransaction) |
Создает объект Transaction из указанного объекта IDtcTransaction. |
GetTransactionFromExportCookie(Byte[]) |
Создает Transaction из заданного файла cookie экспорта. |
GetTransactionFromTransmitterPropagationToken(Byte[]) |
Создает экземпляр Transaction из токена распространения указанного передатчика. |
GetTransmitterPropagationToken(Transaction) |
Создает токен распространения для указанного Transaction. |
GetWhereabouts() |
Получает сведения о расположении диспетчера распределенных транзакций, который используется методом System.Transactions. |