Condividi tramite


TransactionInterop Classe

Definizione

Facilita l'interazione tra System.Transactions e i componenti che sono stati precedentemente scritti per interagire con MSDTC, COM+ o System.EnterpriseServices. La classe non può essere ereditata.

public ref class TransactionInterop abstract sealed
public static class TransactionInterop
type TransactionInterop = class
Public Class TransactionInterop
Ereditarietà
TransactionInterop

Commenti

Questa classe fornisce metodi per la propagazione delle transazioni. Per altre informazioni sul funzionamento di questo processo, vedere Propagazione delle transazioni.

Usando i metodi forniti da questa classe, è possibile interagire in due tipi di propagazioni delle transazioni, Esportazione/Importazione (modello push) e Trasmettitore/Ricevitore (modello pull).

La propagazione dell'esportazione/importazione (modello push) prevede questi passaggi,

  1. Nel computer remoto ottenere la "posizione" del gestore transazioni del computer chiamando il GetWhereabouts metodo . È quindi possibile memorizzare nella cache queste informazioni sul computer client per un utilizzo futuro.

  2. Inviare i dati contenenti la posizione al computer client usando qualsiasi metodo preferito

  3. Nel computer client usare la posizione in cui si trova per "esportare" la transazione nel computer remoto e generare una transazione "cookie". Questa operazione viene eseguita chiamando GetExportCookie e passando la posizione del computer remoto.

  4. Inviare i dati contenenti la transazione "cookie" al computer remoto usando qualsiasi metodo preferito

  5. Nel computer remoto usare la transazione "cookie" per ottenere un clone della transazione client chiamando il GetTransactionFromExportCookie metodo .

  6. Nel computer remoto usare la transazione clone per integrare resource manager usando i EnlistVolatile metodi o EnlistDurable della Transaction classe .

La propagazione del trasmettitore/ricevitore (modello pull) prevede questi passaggi,

  • Nel computer client, l'uso della transazione genera un "token di propagazione" corrispondente chiamando GetTransmitterPropagationToken

  • Inviare i dati contenenti il "token di propagazione" della transazione al computer remoto usando qualsiasi metodo preferito

  • Nel computer remoto usare il "token di propagazione" per ottenere un clone della transazione client chiamando GetTransactionFromTransmitterPropagationToken

Il modello Trasmettitore/Ricevitore offre prestazioni migliori negli scenari in cui il token di transazione viene inviato a un computer remoto, ma il computer remoto potrebbe non usarlo per ottenere la transazione. Ciò è dovuto al fatto che la transazione non viene propagata finché GetTransactionFromTransmitterPropagationToken non viene chiamata. Un altro vantaggio è che il token di propagazione può essere inviato a qualsiasi computer remoto, mentre il cookie di esportazione può essere usato solo nel computer che ha fornito la posizione.

Tuttavia, è anche necessario notare che le posizioni dei gestori transazioni remoti vengono incapsulate in tutti i token di propagazione, rendendoli più grandi dei cookie di transazione corrispondenti dal modello di esportazione/importazione.

Nota Questo tipo usa LinkDemand per impedire che venga chiamato da codice non attendibile. Tuttavia, solo il chiamante immediato è necessario per possedere il FullTrust set di autorizzazioni.

Campi

PromoterTypeDtc

Tipo di elaborazione delle transazioni distribuite.

Metodi

GetDtcTransaction(Transaction)

Ottiene un'istanza di IDtcTransaction che rappresenta un oggetto Transaction.

GetExportCookie(Transaction, Byte[])

Trasforma un oggetto transazione in un cookie della transazione di esportazione.

GetTransactionFromDtcTransaction(IDtcTransaction)

Genera un oggetto Transaction da un oggetto IDtcTransaction specificato.

GetTransactionFromExportCookie(Byte[])

Genera un oggetto Transaction da un cookie di esportazione specificato.

GetTransactionFromTransmitterPropagationToken(Byte[])

Genera un'istanza di Transaction dal token di propagazione del trasmettitore specificato.

GetTransmitterPropagationToken(Transaction)

Genera un token di propagazione per l'oggetto Transaction specificato.

GetWhereabouts()

Ottiene il whereabouts del servizio di gestione transazioni distribuito usato da System.Transactions.

Si applica a