TransactionInterop Класс

Определение

Облегчает взаимодействие между System.Transactions и компонентами, которые были разработаны ранее для взаимодействия с MSDTC, COM+ или System.EnterpriseServices.Facilitates interaction between System.Transactions and components that were previously written to interact with MSDTC, COM+, or System.EnterpriseServices. Этот класс не наследуется.This class cannot be inherited.

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

Комментарии

Этот класс предоставляет методы для распространения транзакции.This class provides methods for transaction propagation. Дополнительные сведения о работе этого процесса см. в разделе Распространение транзакций.For more information on how this process works, see Transaction Propagation.

Используя методы, предоставляемые этим классом, можно использовать два типа распространения транзакций: экспорт/импорт (Push-модель) и передатчик/получатель (модель извлечения).Using the methods provided by this class, you can engage in two types of transaction propagations, Export/Import (push model) and Transmitter/Receiver (pull model).

Распространение операций экспорта и импорта (модель push-уведомлений) включает в себя следующие шаги.The Export/Import (push model) propagation involves these steps,

  1. На удаленном компьютере получите "местонахождение" диспетчера транзакций этого компьютера, вызвав GetWhereabouts метод.On the remote machine, obtain the "whereabouts" of the transaction manager of that machine by calling the GetWhereabouts method. Затем можно кэшировать этот фрагмент информации на клиентском компьютере для использования в будущем.You can then cache this piece of information on the client machine for future usage.

  2. Отправка данных, содержащих сведения о местонахождении, на клиентский компьютер с помощью любого предпочтительного методаSend the data containing the whereabouts to the client machine using any preferred method

  3. На клиентском компьютере используйте "местонахождение" для экспорта транзакции на удаленный компьютер и создания транзакции "cookie".On the client machine, use the whereabouts to "export" the transaction to the remote machine and generate a transaction "cookie". Это делается путем вызова GetExportCookie и передачи сведений о местонахождении удаленного компьютера.This is done by calling GetExportCookie and passing in the remote machine's whereabouts.

  4. Отправка данных, содержащих "cookie" транзакции, на удаленный компьютер с помощью любого предпочтительного методаSend the data containing the transaction "cookie" to the remote machine using any preferred method

  5. На удаленном компьютере используйте транзакцию "cookie" для получения клона клиентской транзакции, вызвав GetTransactionFromExportCookie метод.On the remote machine, use the transaction "cookie" to obtain a clone of the client transaction by calling the GetTransactionFromExportCookie method.

  6. На удаленном компьютере используйте операцию клонирования, чтобы прикрепить диспетчер ресурсов с EnlistVolatile помощью EnlistDurable методов Transaction или класса.On the remote machine, use the clone transaction to enlist the resource manager using the EnlistVolatile or EnlistDurable methods of the Transaction class.

Распространение (модель извлечения) передатчиков и приемников включает в себя следующие шаги.The Transmitter/Receiver (pull model) propagation involves these steps,

  • На клиентском компьютере при помощи транзакции создается соответствующий маркер распространения путем вызова методаGetTransmitterPropagationTokenOn the client machine, using the transaction generates a corresponding "propagation token" by calling GetTransmitterPropagationToken

  • Отправка данных, содержащих маркер распространения транзакции на удаленный компьютер, с использованием любого предпочтительного методаSend the data containing the "propagation token" of the transaction to the remote machine using any preferred method

  • На удаленном компьютере используйте "токен распространения" для получения клона клиентской транзакции путем вызова методаGetTransactionFromTransmitterPropagationTokenOn the remote machine, use the "propagation token" to obtain a clone of the client transaction by calling GetTransactionFromTransmitterPropagationToken

Модель передатчиков и приемников обеспечивает лучшую производительность в сценариях, где маркер транзакции отправляется на удаленный компьютер, но удаленный компьютер не может использовать его для получения транзакции.The Transmitter/Receiver model provides better performance in scenarios where the transaction token is sent to a remote machine, but the remote machine may not use it to obtain the transaction. Это обусловлено тем, что транзакция не распространяется до GetTransactionFromTransmitterPropagationToken вызова метода.This is because the transaction is not propagated until GetTransactionFromTransmitterPropagationToken is called. Другое преимущество заключается в том, что токен распространения может быть отправлен на любой удаленный компьютер, а файл cookie экспорта можно использовать только на компьютере, который предоставил свое местонахождение.Another advantage is that the propagation token can be sent to any remote machine, while the export cookie can be used only on the machine that provided the whereabouts.

Однако следует также отметить, что местонахождение удаленных диспетчеров транзакций инкапсулировано во всех маркерах распространения, что делает их больше, чем соответствующие файлы cookie транзакций из модели экспорта и импорта.However, you should also note that the whereabouts of remote transaction managers are encapsulated in all the propagation tokens, making them bigger than the corresponding transaction cookies from the Export/Import model.

Примечание . Этот тип использует LinkDemand , чтобы предотвратить вызов из ненадежного кода, но только непосредственный вызывающий объект должен FullTrust обладать набором разрешений.Note This type uses LinkDemand to prevent it from being called from untrusted code; however, only the immediate caller is required to possess the FullTrust permission set.

Поля

PromoterTypeDtc

Тип обработчика распределенных транзакций.The type of the distributed transaction processor.

Методы

GetDtcTransaction(Transaction)

Получает экземпляр IDtcTransaction, который представляет Transaction.Gets an IDtcTransaction instance that represents a Transaction.

GetExportCookie(Transaction, Byte[])

Преобразует объект транзакции в файл cookie транзакции экспорта.Transforms a transaction object into an export transaction cookie.

GetTransactionFromDtcTransaction(IDtcTransaction)

Создает объект Transaction из указанного объекта IDtcTransaction.Generates a Transaction from a specified IDtcTransaction.

GetTransactionFromExportCookie(Byte[])

Создает Transaction из заданного файла cookie экспорта.Generates a Transaction from the specified an export cookie.

GetTransactionFromTransmitterPropagationToken(Byte[])

Создает экземпляр Transaction из токена распространения указанного передатчика.Generates a Transaction instance from the specified transmitter propagation token.

GetTransmitterPropagationToken(Transaction)

Создает токен распространения для указанного Transaction.Generates a propagation token for the specified Transaction.

GetWhereabouts()

Получает сведения о расположении диспетчера распределенных транзакций, который используется методом System.Transactions.Gets the Whereabouts of the distributed transaction manager that System.Transactions uses.

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