Поделиться через


TransactionInterop Класс

Определение

Облегчает взаимодействие между System.Transactions и компонентами, которые были разработаны ранее для взаимодействия с MSDTC, COM+ или System.EnterpriseServices. Этот класс не наследуется.

public ref class TransactionInterop abstract sealed
public static class TransactionInterop
type TransactionInterop = class
Public Class TransactionInterop
Наследование
TransactionInterop

Комментарии

Этот класс предоставляет методы для распространения транзакций. Дополнительные сведения о том, как работает этот процесс, см. в разделе Распространение транзакций.

Используя методы, предоставляемые этим классом, можно использовать два типа распространения транзакций: экспорт и импорт (модель отправки) и передатчик/приемник (модель извлечения).

Распространение модели экспорта и импорта (принудительной отправки) включает следующие действия.

  1. На удаленном компьютере получите сведения о местонахождении диспетчера транзакций этого компьютера, вызвав GetWhereabouts метод . Затем эту информацию можно кэшировать на клиентском компьютере для дальнейшего использования.

  2. Отправьте данные, содержащие сведения о местонахождении, на клиентский компьютер с помощью любого предпочтительного метода.

  3. На клиентском компьютере используйте сведения о местонахождении, чтобы "экспортировать" транзакцию на удаленный компьютер и создать транзакцию "cookie". Это делается путем вызова GetExportCookie и передачи местонахождения удаленного компьютера.

  4. Отправьте данные, содержащие файл cookie транзакции, на удаленный компьютер с помощью любого предпочтительного метода.

  5. На удаленном компьютере используйте транзакцию cookie, чтобы получить клон транзакции клиента, вызвав GetTransactionFromExportCookie метод .

  6. На удаленном компьютере используйте транзакцию клонирования, чтобы завербовать диспетчер ресурсов с помощью 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.

Применяется к