EnlistmentOptions 枚举
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
确定是否应该在准备阶段登记该对象。
此枚举支持其成员值的按位组合。
public enum class EnlistmentOptions
[System.Flags]
public enum EnlistmentOptions
[<System.Flags>]
type EnlistmentOptions =
Public Enum EnlistmentOptions
- 继承
- 属性
字段
EnlistDuringPrepareRequired | 1 | 该对象必须在提交过程的初始阶段中进行登记。 |
None | 0 | 该对象在提交过程的初始阶段中不需要登记。 |
注解
此枚举将 EnlistVolatile 传入事务管理器的和 EnlistDurable 方法,以通知事务管理器是否需要在准备阶段创建另一个登记。 有关登记的详细信息,请参阅将 资源登记为事务中的参与者。
如果在登记期间指定了 EnlistDuringPrepareRequired,则资源管理器指示希望在事务仍允许新登记时收到准备通知。 充当另一持久资源的缓存(例如后端数据库)的资源管理器可能会在登记期间使用此选项。 当缓存资源获取其“准备”通知时,它会将其内容传输到持久资源。 为此,持久资源会登记事务,成为 2 阶段提交 (2PC) 协议的参与者。 在发生这种情况之前,只有缓存资源 (未登记持久资源) 。
如果指定了 None,则登记指示在 2PC 中创建新登记太晚之前,它不会收到准备通知。 在我们的前面的方案中,如果缓存资源在登记期间指定了此选项,并在准备通知期间尝试刷新其缓存,则持久资源会在尝试登记时收到异常,因为它太晚了。
不应将 None 用作默认值。