TransactionInterop 类

定义

促进 System.Transactions 和以前编写的用于与 MSDTC、COM+ 或 System.EnterpriseServices 进行交互的组件之间的交互。 此类不能被继承。

public ref class TransactionInterop abstract sealed
public static class TransactionInterop
type TransactionInterop = class
Public Class TransactionInterop
继承
TransactionInterop

注解

此类提供事务传播的方法。 有关此过程工作原理的详细信息,请参阅 事务传播

使用此类提供的方法,可以处理两种类型的事务传播:导出/导入 (推送模型) 和发送器/接收器 (拉取模型) 。

导出/导入 (推送模型) 传播涉及以下步骤:

  1. 在远程计算机上,通过调用 GetWhereabouts 方法获取该计算机的事务管理器的“下落”。 然后,可以在客户端计算机上缓存此信息,以供将来使用。

  2. 使用任何首选方法将包含行踪的数据发送到客户端计算机。

  3. 在客户端计算机上,使用行踪将事务“导出”到远程计算机,并生成事务“cookie”。 这是通过调用 GetExportCookie 和传入远程计算机的下落来完成的。

  4. 使用任何首选方法将包含事务“cookie”的数据发送到远程计算机。

  5. 在远程计算机上,使用事务“cookie”通过调用 GetTransactionFromExportCookie 方法获取客户端事务的克隆。

  6. 在远程计算机上,使用克隆事务使用 EnlistVolatile 类的 TransactionEnlistDurable 方法登记资源管理器。

发送器/接收器 (拉模型) 传播涉及以下步骤:

  • 在客户端计算机上,使用 事务通过调用 GetTransmitterPropagationToken生成相应的“传播令牌”。

  • 使用任何首选方法将包含事务的“传播令牌”的数据发送到远程计算机。

  • 在远程计算机上,使用“传播令牌”通过调用 <xref:System.Transactions.TransactionInterop.GetTransactionFromTransmitterPropagationToken%2A 来获取客户端事务的克隆。

在事务令牌发送到远程计算机,但远程计算机可能无法使用它来获取事务的情况下,发送器/接收器模型提供更好的性能。 这是因为在调用 之前 GetTransactionFromTransmitterPropagationToken 不会传播事务。 另一个优点是传播令牌可以发送到任何远程计算机,而导出 Cookie 只能在提供行踪的计算机上使用。

但是,还应注意,远程事务管理器的行踪封装在所有传播令牌中,使它们比导出/导入模型中的相应事务 Cookie 更大。

字段

PromoterTypeDtc

分布式事务处理器的类型。

方法

GetDtcTransaction(Transaction)

获取表示 TransactionIDtcTransaction 实例。

GetExportCookie(Transaction, Byte[])

将事务对象转换为导出事务 Cookie。

GetTransactionFromDtcTransaction(IDtcTransaction)

从指定的 Transaction 生成 IDtcTransaction

GetTransactionFromExportCookie(Byte[])

从指定的导出 Cookie 生成 Transaction

GetTransactionFromTransmitterPropagationToken(Byte[])

从指定的传输器传播标记生成 Transaction 实例。

GetTransmitterPropagationToken(Transaction)

为指定的 Transaction 生成传播标记。

GetWhereabouts()

获取 System.Transactions 使用的分布式事务管理器的“行踪”。

适用于