IMS 使用 "transaction" 这个词是否有点不同?

Does IMS use the word "transaction" a bit differently?

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

我听到类似 "the application killed the IMS transaction, now all the users can't buy anything!" 的声音。通常,如果交易由于某些错误而失败,这没什么大不了的,下一位客户会出现并开始新的交易。

我听到的评论让我觉得他们打开了一个交易,然后所有的购买都以某种方式混入其中,如果一次购买出现错误,那么所有的购买都会被回滚,并且不可能再进行购买。

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

在 IMS TM(以及与此相关的 CICS)中,单词 "transaction" 可以指代两个不同但相关的事物:

  • 连接终端上键入的标识符的配置实体,以及作为此类输入的结果执行的程序(以及随之而来的一系列属性。)

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

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

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

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

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