Compartilhar via


TransactionInterop Classe

Definição

Facilita a interação entre System.Transactions e componentes anteriormente escritos para interagir com o MSDTC, COM+ ou System.EnterpriseServices. Essa 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

Comentários

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

Usando os métodos fornecidos por essa classe, você pode participar de dois tipos de propagações de transação, Exportar/Importar (modelo de push) e Transmissor/Receptor (modelo de pull).

A propagação exportar/importar (modelo de push) envolve essas etapas,

  1. No computador remoto, obtenha o "paradeiro" do gerenciador de transações desse computador chamando o GetWhereabouts método. Em seguida, você pode armazenar em cache essas informações no computador cliente para uso futuro.

  2. Enviar os dados que contêm o paradeiro para o computador cliente usando qualquer método preferencial

  3. No computador cliente, use o paradeiro para "exportar" a transação para o computador remoto e gerar um "cookie" de transação. Isso é feito chamando GetExportCookie e passando o paradeiro do computador remoto.

  4. Enviar os dados que contêm a transação "cookie" para o computador remoto usando qualquer método preferencial

  5. No computador remoto, use a transação "cookie" para obter um clone da transação do cliente chamando o GetTransactionFromExportCookie método.

  6. No computador remoto, use a transação de clone para inscrever o gerenciador de recursos usando os EnlistVolatile métodos da Transaction classe.EnlistDurable

A propagação do Transmissor/Receptor (modelo de pull) envolve essas etapas,

  • No computador cliente, o uso da transação gera um "token de propagação" correspondente chamando GetTransmitterPropagationToken

  • Enviar os dados que contêm o "token de propagação" da transação para o computador remoto usando qualquer método preferencial

  • No computador remoto, use o "token de propagação" para obter um clone da transação do cliente chamando 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 pode não usá-lo para obter a transação. Isso ocorre porque a transação não é propagada até GetTransactionFromTransmitterPropagationToken ser chamada. Outra vantagem é que o token de propagação pode ser enviado para qualquer computador remoto, enquanto o cookie de exportação só pode ser usado no computador que forneceu o paradeiro.

No entanto, você também deve observar que o paradeiro dos gerenciadores de transações remotas está encapsulado 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.

Nota Esse tipo usa LinkDemand para impedir que ele seja chamado de código não confiável; no entanto, somente o chamador imediato é necessário para possuir o FullTrust conjunto de permissões.

Campos

PromoterTypeDtc

O tipo do processador de transação distribuída.

Métodos

GetDtcTransaction(Transaction)

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

GetExportCookie(Transaction, Byte[])

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

GetTransactionFromDtcTransaction(IDtcTransaction)

Gera um Transaction de um IDtcTransaction especificado.

GetTransactionFromExportCookie(Byte[])

Gera um Transaction do especificado em um cookie de exportação.

GetTransactionFromTransmitterPropagationToken(Byte[])

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

GetTransmitterPropagationToken(Transaction)

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

GetWhereabouts()

Obtém a localização do gerenciador de transação distribuída usado por System.Transactions.

Aplica-se a