事务

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

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

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

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

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

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

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

  4. 客户端调用 CommitTransaction 函数。

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

事务和线程

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

事务函数

以下函数用于事务。

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