IEnlistmentNotification.Prepare(PreparingEnlistment) 方法

定义

通知登记的对象事务正在为提交做准备。

public:
 void Prepare(System::Transactions::PreparingEnlistment ^ preparingEnlistment);
public void Prepare (System.Transactions.PreparingEnlistment preparingEnlistment);
abstract member Prepare : System.Transactions.PreparingEnlistment -> unit
Public Sub Prepare (preparingEnlistment As PreparingEnlistment)

参数

preparingEnlistment
PreparingEnlistment

用于将响应发送到事务管理器的 PreparingEnlistment 对象。

注解

事务管理器在承诺的第 1 阶段调用登记的资源管理器的此方法,当它询问参与者是否可以提交事务时。

实现持久资源管理器时,应在此阶段记录准备记录。 记录应包含执行恢复所需的所有信息。 这包括 属性 RecoveryInformation ,该属性在恢复期间传递到 方法中的 Reenlist 事务管理器。 有关恢复的更多信息,请参见执行恢复

资源管理器应在调用 Prepared 参数的 preparingEnlistment 方法之前完成必须完成的所有工作,以指示其投票支持承诺。 在收到任何阶段 2 通知(例如提交、回滚或不确定)之前,应确保完成此操作。 这是因为阶段 2 通知可以在第 1 阶段调用 Prepared 方法的同一线程内联发生。 因此,在调用 Prepared 后,您不应执行任何预计在收到第 2 阶段通知前就可完成的操作(如释放锁定)。

还可以调用 参数的 preparingEnlistment 方法来指示回滚的投票。

如果希望对象仅观察事务的进度并对其做出反应,而不参与它,则此方法的实现应在它完成其工作后调用 Done 参数的 preparingEnlistment 方法。 执行此操作后,资源管理器不会收到任何阶段 2 通知。

适用于