最常问的 70 多个 CICS 面试问题和答案

2025年3月17日 | 阅读18分钟

1) CICS 的全称是什么?它有什么用途?

CICS 是 Customer Information Control System 的缩写。这是一种系统控制软件,用于控制 IBM 管理的所有在线事务,并监控 IBM 的电信。IBM 的大型机操作系统是分时和批处理的。CICS 是一种主要通过单个请求启动的处理类型,该请求也可以影响一个或多个对象。CICS 成立于 1969 年。


2) CICS 中的 PPT 是什么?它包含什么?

PPT 是 Processing Programming Table 的缩写。在 CICS 中,PPT 包含程序名称、Mapset 名称、任务使用计数器、语言、大小、主存储器地址、映射等重要信息。


3) CICS 的主要方面是什么?

CICS 主要用于处理在线应用程序的执行和开发。CICS 的主要方面是提供对数据库以及数据库中文件的良好访问。它通过终端提供通信通道,使格式化数据的发送和接收变得容易。


4) 集成 CICS 翻译器有什么要求?

集成 CICS 翻译器主要用于以下原因

  • 如果您必须使用 COBOL 编译器,则需要它。当我们使用 Fromcompiler 选项时,它与集成 CICS 翻译器一起使用。
  • 当编译器在源程序中遇到 CICS 语句时,它会与集成 CICS 翻译器接口。
  • 之后,翻译器对 CICS 语句采取行动,并返回编译器以显示要生成哪些本机语言语句。
  • 与单独的翻译器相比,集成翻译器没有限制。
  • 它还可以处理源程序中的本机 COBOL 和嵌入式 CICS 语句。

5) 操作系统中 CICS 作业的优先级是什么?

CICS 本身就是一个批处理作业,在操作系统中以高优先级运行。


6) 哪个 CICS 命令用于访问当前日期和时间?

ASKTIME CICS 命令用于访问当前日期和时间。


7) CICS 中的 call 和 link 有什么区别?

CICS 中 call 和 link 的主要区别在于,在 call 的情况下,每当我们更改被调用程序时,我们还需要编译调用程序。在 link 的情况下,则不需要。


8) 您如何理解 CICS 中的 TCT 和 RCT?

TCT 和 RCT 这两个术语都用于 CICS。TCT 是 Terminal Control Table 的缩写。它是所有相应终端的集合。另一方面,RCT 是 Resource Control Table 的缩写,它是 DB2 计划名称以及事务标识符的集合。


9) Skipper 和 Stopper 字段的属性值是什么?

我们可以使用 ASKIP 作为 Skipper 字段的属性值,对于 Stopper 字段,我们可以使用 PROT。


10) PCT 和 FCT 有什么区别?

在 CICS 中,PCT 是 Program Control Table 的缩写。它包含与相应程序配对的事务标识符的完整列表。另一方面,FCT 也是 File Control Table 的缩写。它包含 CICS 使用过的所有文件的完整列表,以及它们的状态和记录长度。


11) 哪个命令用于释放获得独占控制的记录?

EXEC CICS UNLOCK END-EXEC 命令用于释放获得独占控制的记录。


12) START 和 XCTL 有什么区别?

START 是一个用于启动新任务的命令。它是一个间隔控制命令。另一方面,XCTL 是一个用于将控制权传递给同一任务中程序的命令。它是一个程序控制命令。


13) CICS 中使用的 BMS 选项有哪些?

CICS 中使用的 BMS 选项有:Minimum、Standard 和 Full。


14) 如何在未输入数据的情况下将 MDT 选项设置为“ON”状态?

即使未输入数据,我们也可以通过在 DFHMDF 中提及 FSET 选项或在程序中使用 FIELD+A 属性字段动态设置来将 MDT 选项设置为“ON”状态。


15) 您如何理解 CICS 任务?

CICS 任务是执行特定 CICS 事务的一次性过程。此过程在我们将键输入事务并按下回车键时开始。执行过程持续到程序将控制权返回给 CICS。


16) EXEC CICS HANDLE CONDITION 命令有什么用?

EXEC CICS HANDLE CONDITION 命令指定在发生“handle condition”时要将控制权传递到的段落或程序标签。


17) CICS 中使用了哪些不同的重要程序?

以下是 CICS 中使用的一些重要程序的列表

  • TCP
  • KCP
  • PCP
  • FCP
  • SCP

18) 您如何理解 CEMT?

CEMT 是 CICS Execute Master Terminal 的缩写。它是系统事务的 ID,主要用于查询和更新 CICS 环境和其他系统操作的状态。我们可以轻松管理事务、任务、文件、程序等,还可以更改资源的状态。通过键入 CEMT 并按 ENTER,我们可以看到所有可能的选项。


19) 您如何理解 CICS 中的 BMS 术语?

BMS 是 Basic Mapping Support 的缩写。CICS 提供 BMS 来定义和格式化屏幕。使用 BMS 定义的屏幕称为 MAP。所有屏幕的集合称为 Mapset。


20) CICS 中最重要的控制程序有哪些?

它们提供了独特的优势,使 CICS 系统具有高度的灵活性和可维护性。

以下是 CICS 最重要的控制程序的列表

TCP

TCP 是 Terminal Control Program 的缩写。它用于接收所有终端的消息,并请求 CISC 启动或开始特定任务。它还用于维护硬件通信要求。

KCP

KCP 称为 Task Control Program。它用于同时控制任务的执行及其相关属性。它还用于处理所有与多任务相关的问题。

PCP

PCP 是 Program Control Program 的缩写。它用于定位和加载程序以供执行。它还用于在程序之间传输控制,最后将控制权返回给 CICS。

FCP

FCP 是 File Control Program 的缩写。它为应用程序提供诸如读取、插入、更新或删除文件中记录的服务。它还对记录保持独占控制,以在记录更新期间维护数据完整性。

SCP

SCP 是 Storage Control Program 的缩写。它控制 CICS 区域内存储的分配和释放。


21) CICS 中有哪些重要的控制表?

CICS 包含一些 IBM 提供的 CICS 控制表,需要根据应用程序信息进行更新,以成功执行 CICS 应用程序。

以下是一些重要控制表的列表

TCT

TCT 是 Terminal Control Table 的缩写。当我们登录 CICS 终端时,我们必须进入 TCT 表。此表包含连接到当前 CICS 区域的终端 ID。终端控制表与终端控制程序一起识别来自终端的传入数据。

PCT

PCT 是 Program Control Table 的缩写。它包含事务 ID (TRANSID) 和相应的程序名称或程序 ID。每个 PCT 表都有一个唯一的事务 ID 或 TRANSID。

PPT

PPT 是 Processing Program Table 的缩写。它包含程序名称或 Mapset 名称、任务使用计数器、语言、大小、主存储器地址、加载库地址等。每个 PPT 表都有一个唯一的程序或 Mapset 名称。

FCT

FCT 是 File Control Table 的缩写。它包括文件名称、文件类型、记录长度等。CICS 程序中使用的所有文件都必须在 FCT 中声明,并且由 CICS 本身打开和关闭。


22) COMMAREA 是什么?使用它有什么好处?

COMMAREA 是通信区的简称,也是最常用的名称。它是数据区域的名称,数据或信息从一个程序传输到另一个程序。它是一个临时存储区域,主要用作一组事务或特定事务加载的多个程序之间的数据传递媒介。

COMMAREA 通常与 TRANSID 选项一起使用,将数据发送回执行事务 ID 的程序,以便用户在执行该事务时可以使用它。

COMMAREA 允许通过的最大数据长度为 64K。


23) CICS 中的 EIB 是什么?我们如何使用它?

在 CICS 中,EIB 是 EXEC Interface Block 的缩写。EIB 是 CICS 为每个程序自动加载的控制块。CICS 自动生成一些与系统相关的信息,并以 EIB 的形式提供给每个任务。每个任务都有一个唯一的 EIB,它存在于任务的整个持续时间内。它包含与任务相关的一组系统信息。用户可以在其应用程序程序中使用 EIB 的所有字段。


24) CICS 中的事务是什么?事务在 CICS 中有什么用?

在 CICS 中,事务是单个请求启动的处理单元。此请求通常由终端的最终用户启动,但也可以由网页、远程工作站程序或另一个 CICS 系统中的应用程序启动。它也可以在预定义的时间自动触发。

CICS 中事务的一些主要用途是

  • 事务执行或启动特定任务。它充当唯一的标识符。
  • 我们可以同时从不同的系统触发事务,但不能从相同的系统触发。
  • 事务通常是由单个请求启动的交互式处理,但后台事务是可能的。
  • 事务是四字符输入类型,并且不允许事务名称中出现任何重复项。
  • 事务与程序之间存在一对一或多对多的映射。它在事务触发时执行。

25) CICS 中任务和事务的主要区别是什么?

在 CICS 中,任务和事务之间的主要区别在于,多个用户可以调用一个事务,但每个用户都必须启动自己的任务。


26) 在 EXEC CICS RETURN 命令中包含 TRANSID 会有什么影响?

如果我们在 EXEC CICS RETURN 命令中包含 TRANSID,那么下次最终用户按下注意键时,CICS 将启动 TRANSID 选项中指定的事务。


27) CICS 中常用的一些程序有哪些?

以下是 CICS 中常用的一些程序列表

  • 文件控制程序
  • 终端控制程序
  • 存储控制程序
  • 任务控制程序等。

28) EIBRCODE 在 CICS 中包含什么信息?

在 CICS 中,EIBRCODE 是一个字段,它指示应用程序命令是否成功执行或是否引发了 CICS 条件。


29) CICS 中用于创建 MAP 的处理类型有哪些?

以下是 CICS 中用于创建 MAP 的三种处理类型

  • DFHMDF: DFHMDF 过程设计屏幕或页面上的单个字段。
  • DFHMDI: DFHMDI 过程用于定义字段集合中的单个映射。
  • DFHMSD: DFHMSD 过程有助于将单个映射分组到映射集中。

30) 您如何理解“Transid”?

Transid 是事务标识符的简称。此四字符代码用于调用 CICS 任务。


31) EXEC CICS RECEIVE MAP 命令中的 INTO 和 SET 选项有什么区别?

EXEC CICS RECEIVE MAP 命令中 INTO 和 SET 选项的主要区别在于,INTO 选项将 TIOA 的信息移动到保留的指定区域。相反,SET 选项将 TIOA 的地址返回到指定的 BLL 单元格或“address-of”链接部分。


32) CICS 集中存在哪些不同类型的 DFHMDF?

以下是 CICS 集中存在的一些 DFHMDF 类型

POS: POS 是 CICS 中位置的简称。POS 参数用于指示字段相对于映射位置左上角的行和列位置。

ATTRB: ATTRB 是字段属性的简称。通常,BMS 字段属性不是必需的,因为 BMS 总是使用自动跳过保护、正常强度和修改标签的默认值。

Length: Length 用于指定字段中存在的字符。在 Length 类型中,不存在属性字节,因此每个长度都比其长度值多占一列。

Initial: Initial 类型在 BMS 中也不是必需的。它仅用于 BMS 中已经具有常量值的标签和标题字段。

Picout: Picout 是 filed CHG 的定义之一,用于告诉 BMS 主要使用哪种类型的图片来生成字段。当数据移动到映射中时,Picout 也用于编辑 COBOL 或 PL/I 的工具。

GRPNAME 和 OCCURS: GRPNAME 和 OCCURS 选项是最复杂的形式之一。这就是为什么它们并非总是出现在简单的示例中。GRPNAME 主要用于在程序中细分映射字段以进行后续处理,而 OCCURS 主要帮助我们定义相邻。


33) CICS 的 EIB 块中一些重要字段的名称是什么?

以下是 CICS 的 EIB 块中一些重要字段的列表

  • EIBCALEN
  • EIBRESP
  • EIBTASK
  • EIBRRCDE
  • EIBTIME
  • EIBDATE

34) 是否可以在 CICS 中使用动态调用?

是的。可以在 CICS 中使用动态调用。我们可以在 CICS 中使用动态调用。根据程序,用户必须在 PPT 中定义调用例程,并且调用程序使用 CALL 标识符。


35) 当我们按下 PF 和 PA 键时,RECEIVE MAP 会受到什么影响?

当我们按下 PF 键时,RECEIVE MAP 上可能会发生数据传输。另一方面,当我们按下 PA 键时,数据传输不会发生。


36) 如何在未输入数据的情况下将 MDT 选项设置为“ON”状态?

即使未输入数据,我们也应在 DFHMDF 中提及 FSET 选项,以将 MDT 选项设置为“ON”状态。否则,我们可以在程序中使用FIELD+A属性字段动态设置它。


37) 我们如何终止事务?

我们可以使用命令 EXEC CICS SYNCPOINT 并将其视为 LUW。使用此命令不会终止 Xn,但它肯定会终止事务。


38) SEND MAP MAPONLY 和 SEND MAP DATAONLY 命令有什么区别?

SEND MAP MAPONLY 命令用于单独发送映射,不包含任何数据。例如,它用于发送菜单屏幕。另一方面,SEND MAP DATAONLY 命令单独发送数据,而无需再次发送屏幕布局。例如,它用于刷新屏幕数据。


39) 哪个 CICS 服务事务用于访问 CICS 控制表?

CEDA 是一个 CICS 服务事务,用于访问控制表。


40) XCTL 和 START 有什么区别?

XCTL 作为一种媒介,通过它我们可以将控制权通过相同的任务传递给另一个程序。另一方面,XCTL 是一个程序控制命令。


41) PF 键和 PA 键的主要区别是什么?

PF 键用于唤醒任务并传输修改后的数据。另一方面,PA 键仅用于唤醒任务。


42) 您如何理解 mapset?

Mapset 是链接和编辑的映射的集合,以形成加载模块。它必须有一个 PPT 条目,并且名称可以是 1 到 7 个字符。


43) CICS 中 ENQ 和 DEQ 的用途是什么?

在 CICS 中,ENQ 和 DEQ 是任务控制命令的一部分,用于使资源可串行回收。


44) EXEC CICS XCTL 和 EXEC CICS LINK 命令有什么区别?

EXEC CICS XCTL 命令将控制权传递给同一逻辑级别的应用程序,而不期望控制权返回。另一方面,EXEC CICS LINK 命令用于将控制权传递给下一个逻辑级别的应用程序,并期望控制权返回。


45) CICS 中何时必须需要 NEWCOPY?

在 CICS 中,当特定程序在 CICS 中至少运行过一次或多次,然后重新编译或更改时,某些情况下必须需要 NEWCOPY。


46) 是否可以在 BMS 映射中使用 OCCURS?如果可以,使用它时可能会遇到哪些问题?

是的。可以在 BMS 映射中使用 OCCURS。为此,我们必须使用所需的索引大小重新定义复制簿的输入和输出字段,然后可以在应用程序程序中引用它们。


47) 终端 ID 注册在哪个表中?

在 CICS 中,终端 ID 注册在终端控制表中。


48) CICS 代码可以是复制簿的一部分吗?如果这样做,编译后会有什么结果?

是的,CICS 代码可以轻松成为复制簿的一部分,但如果我们要这样做,我们必须在编译过程之后重新处理。


49) 在多个映射的情况下,符号映射中的存储是如何确定的?

如果我们有多个映射并希望确定符号映射中的存储,则必须首先完成最大的映射。


50) CICS 翻译器的主要用途是什么?

CICS 翻译器主要用于将 EXEC CICS 命令转换为特定编程语言的调用语句。


51) 在 EXEC CICS RETURN 命令中使用 TRANSID 会有什么影响?

在 EXEC CICS RETURN 命令中使用 TRANSID 的影响是,下次最终用户按下注意键时,CICS 将启动 TRANSID 选项中指定的事务。


52) 如何使用备用索引访问 VSAM 文件?

我们可以通过路径访问 VSAM 文件。我们必须将路径声明为 FCT 的形式,然后在上面使用文件控制命令。


53) BMS 字段长度 = 0 是什么意思?

BMS 字段长度 = 0 表示字段中未输入数据。


54) EXEC CICS HANDLE CONDITION 命令的主要功能是什么?

EXEC CICS HANDLE CONDITION 命令指定在发生“handle condition”时我们必须将控制权传递到的段落或程序标签。


55) 您如何理解 AICA ABEND?

AICA ABEND 只是一个失控任务,它在后期执行。


56) 如果您不希望用户输入的字符被折叠成大写,您可以怎么做?

如果我们不希望用户输入的字符被折叠成大写,我们可以在 RECEIVE 上使用 ASIS 选项。


57) EXEC CICS RECEIVE MAP 命令中 INTO 和 SET 选项的主要区别是什么?

在 CICS 中,INTO 选项用于将 TIOA 中的信息移动到保留的指定区域。另一方面,SET 选项用于将 TIOA 的地址返回到指定的 BLL 单元格或“address-of”链接部分。


58) 您可以从 CICS 访问 ESDS 文件吗?

是的,我们可以直接从 CICS 访问 ESDS 文件。


59) 您如何理解 RECEIVE 中的 BUFFER 选项?

RECEIVE 中的 BUFFER 选项从终端缓冲区获取整个数据流。


60) 使用 EIBTIME 和 ASKTIME 命令检索系统时间有什么区别?

在 CICS 中,ASKTIME 命令请求当前日期和时间。另一方面,EIBTIME 命令在任务启动时获取值。


61) CICS 中 DFHMDF BMS 宏的主要用途是什么?

在 CICS 中,DFHMDF BMS 宏主要用于定义字段、文字和字段的特性。


62) 您如何理解 MDT?FRSET 和 FSET 在 MDT 中有什么用?

MDT 是 Modified Data Tag 的缩写。MDT 在输入操作期间使用。如果您修改屏幕上的字段,则 MDT 充当属性字节的一位。

FRSET 是 Flag Reset 的缩写。它用于重置 MDT 并关闭屏幕上所有字段的属性字节中的修改数据标签。如果它一旦被设置,无论是通过用户还是程序,修改数据标签都会一直保持打开状态,直到明确关闭,即使经过几次屏幕传输。另一方面,FSET 打开修改数据标签。另一方面,FSET 打开修改数据标签。它用于确保 MDT 传输字段。FSET 在输出操作期间使用。如果您不指定此项,则仅当用户更改字段时才发送字段。


63) 您如何分类 CICS 程序?

我们可以将 CICS 程序分为以下类型

  • 会话程序
  • 非会话程序
  • 伪会话程序

64) 您如何理解会话程序?

会话程序是需要用户干预才能完成执行的程序。换句话说,我们可以说需要用户输入并在处理后在屏幕上显示数据的程序称为会话程序。

会话程序主要用于向终端发送消息并从活动用户接收响应。例如,在线应用程序始终通过使用发送和接收命令在用户和应用程序之间进行对话。


65) 您如何理解非会话程序?

非会话程序是执行不需要任何用户干预的程序。当我们开始执行时,所有必需的输入都可用于程序。换句话说,我们可以说用于显示报告或消息的程序称为非会话程序。

非传统程序与批处理程序非常相似,并在批处理模式下运行。这些程序主要用于以固定的时间间隔在屏幕上显示序列。


66) 您如何理解伪会话程序?

伪会话程序响应用户操作或事件。它是会话程序的子类型,仅在由另一个程序启动或调用时运行。它还需要用户的某些操作,例如按回车键等。它也称为基于事件的程序。


67) CICS 中 TSQ 和 TDQ 的主要区别是什么?

以下是 CICS 中 TSQ 和 TDQ 的主要区别列表

TSQTDQ
TSQ 是 Temporary Storage Queues 的缩写。TDQ 是 Transient Data Queues 的缩写。
临时存储队列 (TSQ) 中的数据可以更改。瞬时数据队列 (TDQ) 中的数据无法更改。
我们可以在临时存储队列中多次读取数据,并且记录可以随机读取。我们只能在瞬时数据队列中读取数据一次,并且记录只能顺序读取。
我们可以在 TSQ 中更新现有记录。我们不能在 TDQ 中更新现有记录。
我们不能在批处理中访问 TSQ。我们可以轻松地在批处理应用程序中使用 TDQ。
TSQ 的名称在应用程序中动态定义。我们必须在 DCT (Destination Control Table) 中定义 TDQ 的名称。
TSQ 不能自动启动 CICS 事务。TDQ 可以自动启动 CICS 事务。

68) 如何解决 ASRA ABEND?

要解决 ASRA ABEND,我们必须从 CEBR 开始,然后调用偏移量上的指令。


69) BMS 中 DSECT 参数是如何使用的?

BMS 中使用 DSECT 参数来形成符号映射。


70) CICS 中 COMMAREA 的默认大小是多少?

CICS 中 COMMAREA 的默认大小为 65K。


71) 如何处理 CICS 程序中的错误?

要处理 CICS 程序中的错误,我们必须在调用程序后首先检查 EIBRESP。之后,使用替代选项来使用 HANDLE 条件。


72) 您如何理解错误代码 AEIY?

AEIY 是长度的错误代码。如果源数据长度大于接收字段,我们会看到此错误。