交易

事务是定义工作逻辑单元的对象。 只要有引用事务的句柄,该事务就处于活动状态,如果事务尚未提交或回滚,则被视为处于活动状态。 如果创建事务并在提交或回滚发生前已关闭该事务的所有句柄,则事务将回滚。

请考虑创建事务以限定其作范围的用户模式事务客户端的情况,然后对一个或多个资源管理器执行更新。 发生以下情况:

  1. 客户端调用 CreateTransaction 函数来创建事务,并将该事务的句柄作为返回值接收该事务。

    事务可以由任意数量的进程打开或继承;因此,每个进程都涉及事务。 这些进程中的任何一个失败都会导致事务中止。

    此事务可能尚不持久。 如果事务使用假定中止日志记录,则只有已达到准备状态的事务才能在系统故障中恢复。

  2. 客户端必须显式将事务传递给资源管理器。

  3. 客户端使用一个或多个 RM 执行其所有事务作,例如事务处理文件系统。

  4. 客户端调用 CommitTransaction 函数。

  5. 资源管理器从 KTM 接收通知,以准备和提交其数据。

事务和线程

事务与线程不同。 多个线程或进程可以是单个事务的一部分。 相反,线程可以是不同时间多个不同事务的一部分。

事务函数

以下函数用于事务。

功能 描述
CommitTransaction 请求提交指定的事务。
CommitTransactionAsync 请求提交指定的事务。
CreateTransaction 创建新的事务对象。
GetTransactionInformation 返回有关指定事务的请求信息。
OpenTransaction 打开现有事务。
RollbackTransaction 请求将回滚指定的事务。
RollbackTransactionAsync 请求将回滚指定的事务。 此函数以异步方式返回。
SetTransactionInformation 设置指定事务的事务信息。