TransactionInterop Classe

Definição

Facilita a interação entre System.Transactions e componentes anteriormente escritos para interagir com o MSDTC, COM+ ou System.EnterpriseServices.Facilitates interaction between System.Transactions and components that were previously written to interact with MSDTC, COM+, or System.EnterpriseServices. Essa classe não pode ser herdada.This class cannot be inherited.

public ref class TransactionInterop abstract sealed
public static class TransactionInterop
type TransactionInterop = class
Public Class TransactionInterop
Herança
TransactionInterop

Comentários

Essa classe fornece métodos para a propagação da transação.This class provides methods for transaction propagation. Para obter mais informações sobre como esse processo funciona, consulte propagação de transação.For more information on how this process works, see Transaction Propagation.

Usando os métodos fornecidos por essa classe, você pode se envolver em dois tipos de propagações de transações, exportação/importação (modelo de push) e transmissor/receptor (modelo de pull).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).

A propagação de exportação/importação (modelo push) envolve essas etapas,The Export/Import (push model) propagation involves these steps,

  1. No computador remoto, obtenha a "localização" do Gerenciador de transações desse computador chamando o GetWhereabouts método.On the remote machine, obtain the "whereabouts" of the transaction manager of that machine by calling the GetWhereabouts method. Em seguida, você pode armazenar em cache essa informação no computador cliente para uso futuro.You can then cache this piece of information on the client machine for future usage.

  2. Enviar os dados que contêm os locais para o computador cliente usando qualquer método preferencialSend the data containing the whereabouts to the client machine using any preferred method

  3. No computador cliente, use os locais para "exportar" a transação para o computador remoto e gerar um "cookie" de transação.On the client machine, use the whereabouts to "export" the transaction to the remote machine and generate a transaction "cookie". Isso é feito chamando GetExportCookie e passando os locais da máquina remota.This is done by calling GetExportCookie and passing in the remote machine's whereabouts.

  4. Enviar os dados que contêm a transação "cookie" para o computador remoto usando qualquer método preferencialSend the data containing the transaction "cookie" to the remote machine using any preferred method

  5. No computador remoto, use a transação "cookie" para obter um clone da transação do cliente chamando o GetTransactionFromExportCookie método.On the remote machine, use the transaction "cookie" to obtain a clone of the client transaction by calling the GetTransactionFromExportCookie method.

  6. No computador remoto, use a transação de clonagem para inscrever o Gerenciador de EnlistVolatile recursos EnlistDurable usando os métodos Transaction ou da classe.On the remote machine, use the clone transaction to enlist the resource manager using the EnlistVolatile or EnlistDurable methods of the Transaction class.

A propagação do transmissor/receptor (modelo de pull) envolve essas etapas,The Transmitter/Receiver (pull model) propagation involves these steps,

  • No computador cliente, o uso da transação gera um "token de propagação" correspondente chamandoGetTransmitterPropagationTokenOn the client machine, using the transaction generates a corresponding "propagation token" by calling GetTransmitterPropagationToken

  • Enviar os dados que contêm o "token de propagação" da transação para o computador remoto usando qualquer método preferencialSend the data containing the "propagation token" of the transaction to the remote machine using any preferred method

  • No computador remoto, use o "token de propagação" para obter um clone da transação do cliente chamandoGetTransactionFromTransmitterPropagationTokenOn the remote machine, use the "propagation token" to obtain a clone of the client transaction by calling GetTransactionFromTransmitterPropagationToken

O modelo transmissor/receptor fornece melhor desempenho em cenários em que o token de transação é enviado para um computador remoto, mas o computador remoto não pode usá-lo para obter a transação.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. Isso ocorre porque a transação não é propagada GetTransactionFromTransmitterPropagationToken até que seja chamada.This is because the transaction is not propagated until GetTransactionFromTransmitterPropagationToken is called. Outra vantagem é que o token de propagação pode ser enviado para qualquer computador remoto, enquanto o cookie de exportação pode ser usado somente no computador que forneceu a localização.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.

No entanto, você também deve observar que a localização de gerenciadores de transações remotas é encapsulada em todos os tokens de propagação, tornando-os maiores do que os cookies de transação correspondentes do modelo de exportação/importação.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.

Observação Esse tipo usa LinkDemand para impedir que ele seja chamado de código não confiável; no entanto, somente o chamador imediato precisa ter o conjunto FullTrust de permissões.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.

Campos

PromoterTypeDtc

O tipo do processador de transação distribuída.The type of the distributed transaction processor.

Métodos

GetDtcTransaction(Transaction)

Obtém uma instância IDtcTransaction que representa um Transaction.Gets an IDtcTransaction instance that represents a Transaction.

GetExportCookie(Transaction, Byte[])

Transforma um objeto de transação em um cookie de transação de exportação.Transforms a transaction object into an export transaction cookie.

GetTransactionFromDtcTransaction(IDtcTransaction)

Gera um Transaction de um IDtcTransaction especificado.Generates a Transaction from a specified IDtcTransaction.

GetTransactionFromExportCookie(Byte[])

Gera um Transaction do especificado em um cookie de exportação.Generates a Transaction from the specified an export cookie.

GetTransactionFromTransmitterPropagationToken(Byte[])

Gera uma instância Transaction do token de propagação do transmissor especificado.Generates a Transaction instance from the specified transmitter propagation token.

GetTransmitterPropagationToken(Transaction)

Gera um token de propagação para o Transaction especificado.Generates a propagation token for the specified Transaction.

GetWhereabouts()

Obtém a localização do gerenciador de transação distribuída usado por System.Transactions.Gets the Whereabouts of the distributed transaction manager that System.Transactions uses.

Aplica-se a