TransactionInterop Classe

Definição

Facilita a interação entre System.Transactions e componentes que foram previamente escritos para interagir com MSDTC, COM+ ou System.EnterpriseServices. Esta classe não pode ser herdada.

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

Observações

Esta classe fornece métodos para propagação de transações. Para mais informações sobre como este processo funciona, consulte Propagação de Transações.

Usando os métodos fornecidos por esta classe, pode envolver-se em dois tipos de propagação de transações: Exportação/Importação (modelo push) e Transmissor/Recetor (modelo pull).

A propagação de Exportação/Importação (modelo push) envolve os seguintes passos:

  1. Na máquina remota, obtenha o "paradeiro" do gestor de transações dessa máquina chamando o GetWhereabouts método. Depois, podes guardar essa informação na máquina cliente para uso futuro.

  2. Envie os dados contendo a localização para a máquina cliente usando qualquer método preferido.

  3. Na máquina cliente, use o paradeiro para "exportar" a transação para a máquina remota e gerar um "cookie" de transação. Isto faz-se ligando GetExportCookie e informando o paradeiro da máquina remota.

  4. Envie os dados que contêm o "cookie" da transação para a máquina remota usando qualquer método preferido.

  5. Na máquina remota, use o "cookie" da transação para obter um clone da transação cliente ao chamar o GetTransactionFromExportCookie método.

  6. Na máquina remota, use a transação clone para recrutar o gestor de recursos usando os EnlistVolatile métodos ou EnlistDurable da Transaction classe.

A propagação do Transmissor/Recetor (modelo de pull) envolve os seguintes passos:

  • Na máquina cliente, usar a transação gera um "token de propagação" correspondente ao chamar GetTransmitterPropagationToken.

  • Envie os dados que contêm o "token de propagação" da transação para a máquina remota usando qualquer método preferido.

  • Na máquina remota, use o "token de propagação" para obter um clone da transação cliente chamando <xref:System.Transactions.TransactionInterop.GetTransactionFromTransmitterPropagationToken%2A.

O modelo Transmissor/Recetor oferece melhor desempenho em cenários em que o token de transação é enviado para uma máquina remota, mas esta pode não o usar para obter a transação. Isto deve-se ao facto de a transação não ser propagada até GetTransactionFromTransmitterPropagationToken ser chamada. Outra vantagem é que o token de propagação pode ser enviado para qualquer máquina remota, enquanto o cookie de exportação só pode ser usado na máquina que forneceu a localização.

No entanto, deve também notar que a localização dos gestores de transações remotas está 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.

Campos

Name Description
PromoterTypeDtc

O tipo de processador de transações distribuído.

Métodos

Name Description
GetDtcTransaction(Transaction)

Obtém uma IDtcTransaction instância que representa um Transaction.

GetExportCookie(Transaction, Byte[])

Transforma um objeto de transação num cookie de exportação de transação.

GetTransactionFromDtcTransaction(IDtcTransaction)

Gera um Transaction a partir de um determinado IDtcTransaction.

GetTransactionFromExportCookie(Byte[])

Gera a Transaction a partir do cookie de exportação especificado.

GetTransactionFromTransmitterPropagationToken(Byte[])

Gera uma Transaction instância a partir do token de propagação do transmissor especificado.

GetTransmitterPropagationToken(Transaction)

Gera um token de propagação para o especificado Transaction.

GetWhereabouts()

Obtém a localização do gestor de transações distribuído que System.Transactions utiliza.

Aplica-se a