事务处理的术语

在开始使用 KTM 之前,应了解以下术语的定义: 事务资源管理器事务客户端事务管理器日志流登记事务处理系统

交易
事务是数据操作的集合。 所有操作都必须成功,事务才能成功。 如果所有操作都成功,则可以 (提交 事务,也就是说,其结果可以永久且公开) 。 如果任何操作失败,则必须 回滚事务, (也就是说,必须删除所有更改,使数据处于与事务操作开始) 之前的状态相同。

事务的操作是 原子的、 一致的隔离的持久的 (ACID) 。

  • 它们是原子性的,因为它们必须作为一个整体提交或回滚。

  • 它们是一致的,因为无论操作是提交还是回滚,操作始终都会生成准确的结果。

  • 它们是隔离的,因为在提交或回滚事务的操作之前,每个事务的结果对其他事务不可见。

  • 它们是持久的,因为在提交或回滚事务的操作后,操作的结果是永久性的。

交易的一个示例是当您使用自动柜员机 (ATM) 将资金从支票帐户转移到储蓄账户时必须执行的操作集。 支票帐户的借方和储蓄账户的信用额度必须显示为单个原子操作。

属于事务的操作也称为 事务处理操作

资源管理器
资源管理器是一种软件组件,用于管理可由事务处理操作更新的数据资源。 例如,如果要设计数据库系统,则可以提供一个资源管理器来存储和检索数据库的数据。 (TPS) 的简单 事务处理系统 可能只有一个资源管理器。

资源管理器通常还提供一个公共接口,事务客户端可以调用该接口来访问资源管理器的数据。 例如,数据库的资源管理器可能会提供一组函数,客户端可以调用这些函数来读取和写入数据库。

更复杂的 TPS 可以有多个资源管理器,每个资源管理器在参与系统事务时管理单独的数据库或其他资源。

有关资源管理器的详细信息,请参阅创建资源管理器

在某些情况下,一个资源管理器 优于 其他资源管理器,可以启动提交操作。 在 KTM 中,此类资源管理器称为 高级事务管理器

事务客户端
事务客户端是访问资源管理器支持的数据库的软件组件,通常通过调用资源管理器导出的函数。 客户端负责创建事务,执行资源管理器支持的一组操作,然后通知事务管理器 (KTM) 事务应提交或回滚。

有关事务客户端的详细信息,请参阅 创建事务客户端

事务管理器
事务管理器(如 KTM)提供使事务客户端和资源管理器能够相互通信的基础结构。 它还跟踪每个事务 (的状态,但不跟踪客户端和资源管理器) 处理的数据。

事务管理器还可以在系统崩溃后协调恢复操作。

事务管理器不知道构成事务的数据或操作。 数据和操作由客户端和资源管理器控制。

KTM 提供事务客户端可以调用的函数。 这些函数使客户端能够创建、提交和回滚事务。

KTM 还提供资源管理器可以调用的函数。 这些函数使资源管理器能够在事务中登记,以便他们可以接收有关事务的通知。 资源管理器在事务中登记后,当事务客户端准备好提交或回滚事务时,或者发生恢复操作时,它可能会收到通知。

日志流
日志流是事务中发生的事件的记录历史记录。 KTM 使用 通用日志文件系统 (CLFS) 维护日志流。 KTM 记录每个事务的状态更改,以便在必要时支持回滚和恢复操作。

资源管理器还必须使用日志流来记录数据和操作。

回滚操作要求 KTM 和资源管理器将事务和所有数据还原到初始状态。 KTM 和资源管理器在日志流中记录每个事务的初始状态,以便他们可以在回滚操作期间提取该事务。

恢复操作在系统崩溃后发生。 操作系统随后重启时,KTM 和资源管理器可以使用日志流内容将事务的状态重新生成为崩溃前的状态。

有关 KTM 中的日志流的详细信息,请参阅 将日志流与 KTM 配合使用

登记
登记是资源管理器与事务之间的关联。 KTM 提供一组资源经理调用以创建和管理登记的函数。 在资源管理器创建登记后,当事务的状态发生更改时,KTM 会向资源管理器发送通知。

事务处理系统
(TPS) 事务 处理系统 是事务管理器、一个或多个资源管理器、一个或多个日志流以及一个或多个访问资源管理器资源的事务客户端的集合。