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.Facilitates interaction between System.Transactions and components that were previously written to interact with MSDTC, COM+, or System.EnterpriseServices. Questa classe non può essere ereditata.This class cannot be inherited.

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.This class provides methods for transaction propagation. Per ulteriori informazioni sul funzionamento di questo processo, vedere propagazione delle transazioni.For more information on how this process works, see Transaction Propagation.

Usando i metodi forniti da questa classe, è possibile coinvolgere due tipi di propagazioni delle transazioni, esportazione/importazione (modello push) e trasmettitore/ricevitore (modello 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).

La propagazione di esportazione/importazione (modello push) prevede i passaggi seguenti:The Export/Import (push model) propagation involves these steps,

  1. Nel computer remoto, ottenere il "luogo" della gestione transazioni di tale computer chiamando il metodo GetWhereabouts.On the remote machine, obtain the "whereabouts" of the transaction manager of that machine by calling the GetWhereabouts method. È quindi possibile memorizzare nella cache queste informazioni sul computer client per un uso futuro.You can then cache this piece of information on the client machine for future usage.

  2. Inviare i dati che contengono il luogo al computer client usando un metodo preferitoSend the data containing the whereabouts to the client machine using any preferred method

  3. Nel computer client, utilizzare il luogo in cui "esportare" la transazione nel computer remoto e generare una transazione "cookie".On the client machine, use the whereabouts to "export" the transaction to the remote machine and generate a transaction "cookie". Questa operazione viene eseguita chiamando GetExportCookie e passando l'ubicazione del computer remoto.This is done by calling GetExportCookie and passing in the remote machine's whereabouts.

  4. Inviare i dati contenenti la transazione "cookie" al computer remoto usando un metodo preferitoSend the data containing the transaction "cookie" to the remote machine using any preferred method

  5. Nel computer remoto utilizzare la transazione "cookie" per ottenere un clone della transazione client chiamando il metodo GetTransactionFromExportCookie.On the remote machine, use the transaction "cookie" to obtain a clone of the client transaction by calling the GetTransactionFromExportCookie method.

  6. Nel computer remoto usare la transazione Clone per integrare Resource Manager usando i metodi EnlistVolatile o EnlistDurable della classe Transaction.On the remote machine, use the clone transaction to enlist the resource manager using the EnlistVolatile or EnlistDurable methods of the Transaction class.

La propagazione di tipo trasmettitore/ricevitore (modello pull) prevede i passaggi seguenti:The Transmitter/Receiver (pull model) propagation involves these steps,

  • Nel computer client, l'utilizzo della transazione genera un "token di propagazione" corrispondente chiamando GetTransmitterPropagationTokenOn the client machine, using the transaction generates a corresponding "propagation token" by calling GetTransmitterPropagationToken

  • Inviare i dati contenenti il "token di propagazione" della transazione al computer remoto usando un metodo preferitoSend the data containing the "propagation token" of the transaction to the remote machine using any preferred method

  • Nel computer remoto usare il "token di propagazione" per ottenere un clone della transazione client chiamando GetTransactionFromTransmitterPropagationTokenOn the remote machine, use the "propagation token" to obtain a clone of the client transaction by calling GetTransactionFromTransmitterPropagationToken

Il modello di trasmissione/ricezione fornisce prestazioni migliori negli scenari in cui il token di transazione viene inviato a un computer remoto, ma il computer remoto non può utilizzarlo per ottenere la transazione.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. Ciò è dovuto al fatto che la transazione non viene propagata fino a quando non viene chiamato GetTransactionFromTransmitterPropagationToken.This is because the transaction is not propagated until GetTransactionFromTransmitterPropagationToken is called. 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 in cui si trovava.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.

Si noti, tuttavia, che la posizione dei gestori delle transazioni remoti è incapsulata in tutti i token di propagazione, rendendoli più grandi dei cookie di transazione corrispondenti dal modello di esportazione/importazione.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.

Nota Questo tipo USA LinkDemand per impedire che venga chiamato da codice non attendibile. Tuttavia, è necessario solo il chiamante immediato per avere il set di autorizzazioni 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.

Campi

PromoterTypeDtc

Tipo di elaborazione delle transazioni distribuite.The type of the distributed transaction processor.

Metodi

GetDtcTransaction(Transaction)

Ottiene un'istanza di IDtcTransaction che rappresenta un oggetto Transaction.Gets an IDtcTransaction instance that represents a Transaction.

GetExportCookie(Transaction, Byte[])

Trasforma un oggetto transazione in un cookie della transazione di esportazione.Transforms a transaction object into an export transaction cookie.

GetTransactionFromDtcTransaction(IDtcTransaction)

Genera un oggetto Transaction da un oggetto IDtcTransaction specificato.Generates a Transaction from a specified IDtcTransaction.

GetTransactionFromExportCookie(Byte[])

Genera un oggetto Transaction da un cookie di esportazione specificato.Generates a Transaction from the specified an export cookie.

GetTransactionFromTransmitterPropagationToken(Byte[])

Genera un'istanza di Transaction dal token di propagazione del trasmettitore specificato.Generates a Transaction instance from the specified transmitter propagation token.

GetTransmitterPropagationToken(Transaction)

Genera un token di propagazione per l'oggetto Transaction specificato.Generates a propagation token for the specified Transaction.

GetWhereabouts()

Ottiene il whereabouts del servizio di gestione transazioni distribuito usato da System.Transactions.Gets the Whereabouts of the distributed transaction manager that System.Transactions uses.

Si applica a