事务
事务是定义逻辑工作单元的对象。 只要有引用事务的句柄,事务就处于活动状态,如果事务尚未提交或回滚,则它被视为活动状态。 如果已创建事务,且在提交或回滚发生之前已关闭该事务的所有句柄,则会回滚该事务。
请考虑用户模式事务客户端的情况,该客户端创建事务以限定其操作范围,然后在一个或多个资源管理器上执行更新。 发生以下情况:
客户端调用 CreateTransaction 函数来创建事务,并接收该事务的句柄作为返回值。
事务可由任意数量的进程打开或继承;因此,事务中涉及每个进程。 这些进程中的任何一个失败都将导致事务中止。
此事务可能尚未持久。 如果事务使用假定中止日志记录,则必须在系统故障中恢复已达到准备状态的事务。
客户端必须将事务显式传递给资源管理器。
客户端使用一个或多个 RM 执行其所有事务操作,例如事务处理文件系统。
客户端调用 CommitTransaction 函数。
资源管理器从 KTM 接收通知,以准备和提交其数据。
事务与线程不同。 多个线程或进程可以是单个事务的一部分。 相反,线程可以在不同时间成为多个不同事务的一部分。
以下函数用于事务。
函数 | 说明 |
---|---|
CommitTransaction | 请求提交指定的事务。 |
CommitTransactionAsync | 请求提交指定的事务。 |
CreateTransaction | 创建新的事务对象。 |
GetTransactionInformation | 返回所请求的有关指定事务的信息。 |
OpenTransaction | 打开现有事务。 |
RollbackTransaction | 请求回滚指定的事务。 |
RollbackTransactionAsync | 请求回滚指定的事务。 此函数异步返回。 |
SetTransactionInformation | 设置指定事务的事务信息。 |