EnlistmentOptions 枚举

定义

确定是否应该在准备阶段登记该对象。

此枚举支持其成员值的按位组合。

public enum class EnlistmentOptions
[System.Flags]
public enum EnlistmentOptions
[<System.Flags>]
type EnlistmentOptions = 
Public Enum EnlistmentOptions
继承
EnlistmentOptions
属性

字段

EnlistDuringPrepareRequired 1

该对象必须在提交过程的初始阶段中进行登记。

None 0

该对象在提交过程的初始阶段中不需要登记。

注解

此枚举将 EnlistVolatile 传入事务管理器的和 EnlistDurable 方法,以通知事务管理器是否需要在准备阶段创建另一个登记。 有关登记的详细信息,请参阅将 资源登记为事务中的参与者

如果在登记期间指定了 EnlistDuringPrepareRequired,则资源管理器指示希望在事务仍允许新登记时收到准备通知。 充当另一持久资源的缓存(例如后端数据库)的资源管理器可能会在登记期间使用此选项。 当缓存资源获取其“准备”通知时,它会将其内容传输到持久资源。 为此,持久资源会登记事务,成为 2 阶段提交 (2PC) 协议的参与者。 在发生这种情况之前,只有缓存资源 (未登记持久资源) 。

如果指定了 None,则登记指示在 2PC 中创建新登记太晚之前,它不会收到准备通知。 在我们的前面的方案中,如果缓存资源在登记期间指定了此选项,并在准备通知期间尝试刷新其缓存,则持久资源会在尝试登记时收到异常,因为它太晚了。

不应将 None 用作默认值。

适用于