Comparteix a través de


TransactionInterop Clase

Definición

Facilita la interacción entre System.Transactions y componentes que se han escrito previamente para interactuar con MSDTC, COM+ o System.EnterpriseServices. Esta clase no puede heredarse.

public ref class TransactionInterop abstract sealed
public static class TransactionInterop
type TransactionInterop = class
Public Class TransactionInterop
Herencia
TransactionInterop

Comentarios

Esta clase proporciona métodos para la propagación de transacciones. Para obtener más información sobre cómo funciona este proceso, consulte Propagación de transacciones.

Con los métodos proporcionados por esta clase, puede participar en dos tipos de propagaciones de transacciones, Export/Import (modelo de inserción) y Transmisor/Receptor (modelo de extracción).

La propagación de exportación e importación (modelo de inserción) implica estos pasos,

  1. En el equipo remoto, obtenga el "paradero" del administrador de transacciones de esa máquina llamando al GetWhereabouts método . Después, puede almacenar en caché este fragmento de información en el equipo cliente para su uso futuro.

  2. Envíe los datos que contienen el paradero al equipo cliente mediante cualquier método preferido.

  3. En el equipo cliente, use el paradero para "exportar" la transacción al equipo remoto y generar una transacción "cookie". Esto se hace llamando GetExportCookie a y pasando el paradero de la máquina remota.

  4. Enviar los datos que contienen la transacción "cookie" al equipo remoto mediante cualquier método preferido

  5. En el equipo remoto, use la transacción "cookie" para obtener un clon de la transacción de cliente llamando al GetTransactionFromExportCookie método .

  6. En el equipo remoto, use la transacción de clonación para dar de alta al administrador de recursos mediante los EnlistVolatile métodos o EnlistDurable de la Transaction clase .

La propagación del transmisor/receptor (modelo de extracción) implica estos pasos,

  • En el equipo cliente, el uso de la transacción genera un "token de propagación" correspondiente mediante una llamada a . GetTransmitterPropagationToken

  • Enviar los datos que contienen el "token de propagación" de la transacción a la máquina remota mediante cualquier método preferido

  • En el equipo remoto, use el "token de propagación" para obtener un clon de la transacción de cliente mediante una llamada a . GetTransactionFromTransmitterPropagationToken

El modelo transmisor/receptor proporciona un mejor rendimiento en escenarios en los que el token de transacción se envía a una máquina remota, pero es posible que la máquina remota no la use para obtener la transacción. Esto se debe a que la transacción no se propaga hasta GetTransactionFromTransmitterPropagationToken que se llama a . Otra ventaja es que el token de propagación se puede enviar a cualquier máquina remota, mientras que la cookie de exportación solo se puede usar en el equipo que proporcionó el paradero.

Sin embargo, también debe tener en cuenta que los paraderos de los administradores de transacciones remotos se encapsulan en todos los tokens de propagación, lo que hace que sean más grandes que las cookies de transacción correspondientes del modelo de exportación e importación.

Nota Este tipo usa LinkDemand para evitar que se llame desde código que no es de confianza; sin embargo, solo es necesario que el autor de la llamada inmediato posea el FullTrust conjunto de permisos.

Campos

PromoterTypeDtc

Tipo de procesador de la transacción distribuida.

Métodos

GetDtcTransaction(Transaction)

Obtiene una instancia de IDtcTransaction que representa Transaction.

GetExportCookie(Transaction, Byte[])

Transforma un objeto de transacción en una cookie de transacción de exportación.

GetTransactionFromDtcTransaction(IDtcTransaction)

Genera un objeto Transaction a partir de un objeto IDtcTransaction especificado.

GetTransactionFromExportCookie(Byte[])

Genera un objeto Transaction a partir de la cookie de exportación especificada.

GetTransactionFromTransmitterPropagationToken(Byte[])

Genera una instancia de Transaction a partir del token de propagación de transmisor especificado.

GetTransmitterPropagationToken(Transaction)

Genera un token de propagación para el objeto Transaction especificado.

GetWhereabouts()

Obtiene la situación del administrador de transacciones distribuidas que System.Transactions utiliza.

Se aplica a