1

我对大型机世界不是很熟悉,但对不同的 IT 角色有一些经验。我习惯了一个事务是一个相当小、短暂的事情,它基本上将几个小操作变成了一个更原子的操作,以便它要么完全完成,要么回滚。因此,单次购买将是一次交易,或者是我们获取一些信息、进行一些计算然后保存的单次更改。然而,我听到大型机人员的评论让我认为交易更大,更像是一项服务,或者他们在一次交易中批量购买多个产品。

我听到诸如“应用程序终止了 IMS 事务,现在所有用户都无法购买任何东西!”之类的话。通常,如果交易由于某些错误而失败,这没什么大不了的,下一个客户会出现并开始新的交易。

我听到的评论让我认为他们打开了一笔交易,然后所有购买都以某种方式归入其中,如果一次购买发生一些错误,那么所有购买都会回滚,并且不可能进行进一步的购买。

基本上,我应该将 IMS 事务视为与应用程序和数据库世界中通常的正常短期事务相似,还是它们更重或更长时间?

4

1 回答 1

3

在 IMS TM(以及 CICS)中,“事务”一词可以指代两个不同但相关的事物:

  • 一个配置实体,它将在终端上键入的标识符与作为此类条目的结果执行的程序(以及随之而来的一堆属性)连接起来。

  • 由某人键入与上述配置实体相关联的标识符启动的正在运行的程序的实例。

作为配置实体的事务当然是长期存在的,但它本身并没有做任何事情。“正在运行”的事务,即它的一个实例,是一个短暂的实体,它通常也对应于单个数据库事务(第三个称为同名的事物。)

在 IMS 中,作为配置实体的事务可能会由于在执行此类事务的实例期间发生某些错误而被禁用,从而阻止其任何实例的任何进一步执行。这就是应用程序(即与事务关联的程序)杀死事务的意思,即禁用它。

大型机文档试图区分这两件事(如果包括数据库事务,甚至可以区分三件事。)您可能会遇到诸如任务、工作单元等术语。但通俗地说,事务术语是最常听到的。

(在我的回答中,IMS 指的是 IMS 事务管理器。在 IMS DB 中,事务这个词只能有一个含义——它是一个常规的数据库事务。)

于 2016-07-19T08:56:48.223 回答