fbpx

Top 100 CICS Interview Questions and Answers

Top 100 CICS Interview Questions and Answers

Contents show

1. What is CICS?

Answer:

CICS stands for Customer Information Control System. It’s an online transaction processing system designed for mainframes, providing services for running applications, managing transactions, and handling input/output operations.


2. How do you define a CICS program?

Answer:

A CICS program is defined using a programming language like COBOL or PL/I. It must be compiled with a CICS translator to generate an executable module that CICS can execute.

Example COBOL program structure:

IDENTIFICATION DIVISION.
PROGRAM-ID. MyProgram.
DATA DIVISION.
...

3. What is a CICS transaction?

Answer:

A CICS transaction is a unit of work initiated by a user’s request. It’s a series of related operations performed by a CICS application program.


4. How do you start a CICS transaction?

Answer:

Transactions are started by sending a transaction identifier (TRANSID) to CICS using an EXEC CICS START command. For example, EXEC CICS START TRANSID('MYTXN').


5. What is the purpose of the CICS Commarea?

Answer:

The Commarea (communication area) is a region of storage used for passing data between CICS programs. It’s a way for programs to communicate within a single transaction.


6. How do you pass data to and from a CICS program?

Answer:

Data is often passed using the Commarea. For example, data can be placed in the Commarea by one program and retrieved by another program in the same transaction.

Example:

EXEC CICS RECEIVE INTO(data-area) LENGTH(data-length).

7. Explain the concept of a CICS file control command.

Answer:

File control commands in CICS (like READ, WRITE, DELETE) are used to perform operations on files defined to CICS. These commands interact with the CICS file control system.

Example:

EXEC CICS READ FILE('MYFILE') INTO(data-area).

8. How do you handle errors in a CICS program?

Answer:

Errors are often handled by checking the RESP (response code) after executing a CICS command. A non-zero RESP indicates an error.

Example:

EXEC CICS READ FILE('MYFILE') INTO(data-area)
          RESP(resp-code).
IF resp-code = 0 THEN
   ...  // Process successful
ELSE
   ...  // Handle error

9. What is a CICS pseudo conversational program?

Answer:

A pseudo conversational program in CICS is one that appears to be conversational (i.e., it interacts with the user in a back-and-forth manner) but is actually a series of short transactions.


10. How do you define a CICS map?

Answer:

A CICS map is defined using a language like BMS (Basic Mapping Support). It describes the layout of data on the screen.

Example BMS map:

DFHMSD TYPE=MAP,LENGTH=80.
DFHMDI TYPE=INPUT, ...

11. What is a CICS program control block (PCB)?

Answer:

A Program Control Block (PCB) in CICS is a data structure that describes the layout of data for a program. It includes information about data items and their characteristics.


12. How do you define a PCB in a CICS program?

Answer:

A PCB is defined using a language like COBOL. It’s typically declared in the Data Division of the program.

Example COBOL declaration:

01 PCB-NAME.
   05 FIELD-1      PIC X(10).
   05 FIELD-2      PIC 9(5).

13. Explain the purpose of a CICS XCTL command.

Answer:

The XCTL command in CICS is used to transfer control from one program to another within the same transaction. It allows the receiving program to access resources already acquired by the calling program.


14. What is the significance of a CICS Return (RET) command?

Answer:

The RET command is used to end the execution of a CICS program and return control to the calling program. It’s used when a program has completed its processing.


15. How do you handle screens in CICS?

Answer:

Screens in CICS are defined using BMS maps. They describe the layout of data on the screen. Programs use SEND and RECEIVE commands to interact with screens.


16. Explain the concept of a CICS channel.

Answer:

A channel in CICS represents a communication path between programs. It’s used for passing data between programs. Channels are defined in the CICS system definition.


17. What is a CICS temporary storage queue (TSQ)?

Answer:

A Temporary Storage Queue (TSQ) in CICS is a system-defined area where data can be stored temporarily. It’s often used for passing data between programs.


18. How do you read from a TSQ in CICS?

Answer:

TSQs are read using the EXEC CICS READQ TS command. It retrieves data from a specified TSQ into a receiving data area.

Example:

EXEC CICS READQ TS QUEUE('MYTSQ')
          INTO(data-area).

19. What is the purpose of a CICS Program Linkage Area (PLA)?

Answer:

The PLA is an area of storage provided by CICS that allows programs to pass information to each other. It’s defined using a language like COBOL and is accessible by all programs within a transaction.


20. How do you pass data between programs in CICS?

Answer:

Data can be passed between programs in CICS through various mechanisms like Commarea, Program Linkage Area (PLA), Files, and Temporary Storage Queues (TSQs).


21. What is the significance of a CICS EXEC interface block?

Answer:

The EXEC Interface Block (EIB) in CICS contains information about the current transaction, including transaction ID, terminal ID, and command code. It provides context to the program.


22. How do you retrieve the terminal ID in a CICS program?

Answer:

The terminal ID can be found in the EIB. It can be accessed in COBOL using EIBTRMID or in PL/I using EIBTRMID.

Example (COBOL):

MOVE EIBTRMID TO terminal-id.

23. What is a CICS pseudo-conversational program?

Answer:

A pseudo-conversational program in CICS appears to interact with the user in a back-and-forth manner, but it’s actually a series of short transactions. It helps maintain user context.


24. How do you handle errors in a CICS program?

Answer:

Errors are often handled by checking the RESP (response code) after executing a CICS command. A non-zero RESP indicates an error.

Example:

EXEC CICS READ FILE('MYFILE') INTO(data-area)
          RESP(resp-code).
IF resp-code = 0 THEN
   ...  // Process successful
ELSE
   ...  // Handle error

25. Explain the concept of a CICS file control command.

Answer:

File control commands in CICS (like READ, WRITE, DELETE) are used to perform operations on files defined to CICS. These commands interact with the CICS file control system.

Example:

EXEC CICS READ FILE('MYFILE') INTO(data-area).

26. What is a CICS temporary storage queue (TSQ)?

Answer:

A Temporary Storage Queue (TSQ) in CICS is a system-defined area where data can be stored temporarily. It’s often used for passing data between programs.


27. How do you read from a TSQ in CICS?

Answer:

TSQs are read using the EXEC CICS READQ TS command. It retrieves data from a specified TSQ into a receiving data area.

Example:

EXEC CICS READQ TS QUEUE('MYTSQ')
          INTO(data-area).

28. Explain the purpose of a CICS Program Linkage Area (PLA).

Answer:

The PLA is an area of storage provided by CICS that allows programs to pass information to each other. It’s defined using a language like COBOL and is accessible by all programs within a transaction.


29. How do you pass data between programs in CICS?

Answer:

Data can be passed between programs in CICS through various mechanisms like Commarea, Program Linkage Area (PLA), Files, and Temporary Storage Queues (TSQs).


30. What is a CICS BMS map?

Answer:

A BMS (Basic Mapping Support) map in CICS is a data structure used to define the layout of data on a screen. It includes field attributes like length and position.

Example BMS map:

DFHMSD TYPE=MAP,LENGTH=80.
DFHMDI TYPE=INPUT, ...

31. What is a CICS COMMAREA?

Answer:

The COMMAREA is an area of storage that can be used to pass data between programs within the same CICS transaction. It’s defined in the CICS system definition and can hold variable-length data.


32. How do you define a COMMAREA in a CICS program?

Answer:

In COBOL, a COMMAREA is typically defined in the Working-Storage Section.

Example COBOL declaration:

01 MY-COMMAREA.
   05 FIELD-1      PIC X(10).
   05 FIELD-2      PIC 9(5).

33. Explain the purpose of a CICS File Control Table (FCT).

Answer:

The File Control Table (FCT) in CICS is used to define files to the system. It includes information like file name, type, and access method. It’s crucial for file operations.


34. What is a CICS Transient Data Queue (TDQ)?

Answer:

A Transient Data Queue (TDQ) in CICS is a system-defined queue that holds data temporarily. It’s similar to a TSQ but with more specific use cases.


35. How do you read from a TDQ in CICS?

Answer:

TDQs are read using the EXEC CICS READQ TD command. It retrieves data from a specified TDQ into a receiving data area.

Example:

EXEC CICS READQ TD QUEUE('MYTDQ')
          INTO(data-area).

36. Explain the concept of CICS journaling.

Answer:

CICS journaling is a feature that allows for the recording of changes to recoverable resources like files. It enables the recovery of data in case of failures.


37. What is the significance of CICS journal control tables?

Answer:

Journal control tables define the resources that are journaled. They specify which files or resources will have journal records created.


38. How do you start a new transaction in CICS?

Answer:

A new transaction can be initiated using the EXEC CICS START command. It specifies the program to be executed and the transaction ID.

Example:

EXEC CICS START TRANSID('NEWTXN') 
          PROGRAM('NEWPGM') 
          COMMAREA(commarea).

39. What is a CICS program restart?

Answer:

A program restart in CICS refers to the process of restarting a program from a predefined checkpoint after an interruption or failure.


40. Explain the purpose of CICS system initialization tables.

Answer:

System initialization tables contain configuration information for CICS. They include parameters like storage allocation, file definitions, and transaction routing.


41. What is a CICS program controlled interval (PCI)?

Answer:

A Program Controlled Interval (PCI) in CICS is a unit of work where the program takes control until it explicitly releases it. It allows for more fine-grained control over resources.


42. How do you define a PCI in a CICS program?

Answer:

In COBOL, a PCI is defined using the EXEC CICS HANDLE ABEND command, which specifies the start and end of the program controlled interval.

Example:

EXEC CICS HANDLE ABEND END-EXEC.

43. Explain the significance of CICS ASRA and AEYD abends.

Answer:

ASRA and AEYD are abend codes in CICS. ASRA indicates a storage violation, often caused by subscript errors. AEYD indicates a divide exception.


44. What is a CICS temporary storage (TS) dataset?

Answer:

A Temporary Storage (TS) dataset in CICS is a VSAM dataset used to store data persistently. It’s defined in the CICS system definition.


45. How do you read from a TS dataset in CICS?

Answer:

TS datasets are read using the EXEC CICS READ command. It retrieves data from a specified TS dataset into a receiving data area.

Example:

EXEC CICS READ DATASET('MYDATASET')
          INTO(data-area).

46. Explain the purpose of CICS resource definition online (RDO).

Answer:

Resource Definition Online (RDO) in CICS is a facility used to define and manage system resources like files, transactions, and programs.


47. What is a CICS symbolic map?

Answer:

A symbolic map in CICS is a BMS map that uses symbolic field names instead of absolute positions. It enhances readability and maintainability.


48. How do you define a symbolic map in CICS?

Answer:

Symbolic maps are defined in the BMS mapset source using field names instead of positions.

Example:

DFHMSD TYPE=MAP,LENGTH=80.
DFHMDI TYPE=INPUT, ...
DFHMDF POS=(10,20),LENGTH=8,NAME=SYMBOLIC-FIELD.

49. Explain the concept of CICS file-sharing.

Answer:

File-sharing in CICS allows multiple programs or transactions to access the same file concurrently. It’s crucial for data integrity and efficiency.


50. What is a CICS connection group?

Answer:

A CICS connection group is a set of terminals and associated resources that share a single connection to a remote system.


51. What is a CICS terminal?

Answer:

A CICS terminal is a device that allows a user to interact with a CICS system. It can be a physical device like a display or a logical device for batch transactions.


52. How do you define a CICS terminal in the system?

Answer:

Terminals are defined in the CICS system definition using the TERMID parameter. Each terminal is assigned a unique identifier.

Example:

TERMID(TERM001) MODE(E) TTYPE(3270).

53. Explain the concept of CICS pseudo-conversational programming.

Answer:

Pseudo-conversational programming in CICS allows a program to appear as if it’s maintaining a continuous conversation with a user, even though it’s actually ending and starting multiple times.


54. What is a CICS program control table (PCT)?

Answer:

A Program Control Table (PCT) in CICS is used to define programs to the system. It includes information like program name, type, and entry points.


55. How do you define a PCT in CICS?

Answer:

PCT entries are defined in the CICS system definition using the PCT parameter.


56. What is a CICS journal receiver?

Answer:

A CICS journal receiver is a file that stores journal records. It’s used for recovering journaled resources in case of failures.


57. How do you define a journal receiver in CICS?

Answer:

Journal receivers are defined in the CICS system definition using the JRNLRECV parameter. Each receiver is associated with specific journaled resources.

Example:

JRNLRECV(NAME(RECV001) LOG(YES)).

58. Explain the concept of CICS journal threshold.

Answer:

A journal threshold in CICS defines the maximum number of journal records that can be written to a receiver before it’s automatically closed and a new receiver is created.


59. What is a CICS application initiation table (AIT)?

Answer:

An Application Initiation Table (AIT) in CICS is used to specify how applications are started. It defines the transaction ID and program to be used.


60. How do you define an AIT in CICS?

Answer:

AIT entries are defined in the CICS system definition using the INITIATE parameter. Each entry specifies the transaction ID and associated program.

Example:

INITIATE TRANSID('MYTXN') PROGRAM('MYPGM').

61. Explain the purpose of the CICS temporary storage queue (TSQ).

Answer:

A Temporary Storage Queue (TSQ) in CICS is a system-defined queue used for temporary data storage. It’s primarily used for communication between programs.


62. How do you read from a TSQ in CICS?

Answer:

TSQs are read using the EXEC CICS READQ TS command. It retrieves data from a specified TSQ into a receiving data area.

Example:

EXEC CICS READQ TS QUEUE('MYTSQ')
          INTO(data-area).

63. What is a CICS local mode program?

Answer:

A CICS local mode program is a program that executes without invoking the CICS transaction manager. It operates in a standalone mode.


64. How do you invoke a local mode program in CICS?

Answer:

Local mode programs are invoked using a batch job or through an operating system command, bypassing the CICS transaction manager.

Example (batch job):

//MYBATCH  EXEC PGM=MYLOCALP

65. Explain the significance of CICS EXEC interface blocks.

Answer:

EXEC interface blocks provide a standardized way for programs to communicate with CICS services. They contain information about the program and the service being requested.


66. What is a CICS external call interface (EXCI)?

Answer:

The CICS External Call Interface (EXCI) allows programs outside of CICS to request CICS services. It enables communication between non-CICS programs and CICS.


67. How do you initiate an EXCI in CICS?

Answer:

EXCI is initiated using a special programming interface provided by the host programming language. For example, in COBOL, it involves using the CICS LINK command.

Example (COBOL):

EXEC CICS LINK PROGRAM('MYPROG') COMMAREA(commarea).

68. Explain the concept of CICS program control flow.

Answer:

CICS program control flow refers to the sequence in which programs are executed within a transaction. It’s determined by the program entry points and any conditional logic.


69. What is a CICS dynamic transaction backout (DTB)?

Answer:

Dynamic Transaction Backout (DTB) in CICS is a feature that allows for the selective cancellation of updates within a transaction without affecting the entire transaction.


70. How do you initiate a DTB in CICS?

Answer:

DTB is initiated using the EXEC CICS SYNCPOINT ROLLBACK command. This command cancels the updates made since the last SYNCPOINT.

Example:

EXEC CICS SYNCPOINT ROLLBACK.

71. Explain the purpose of CICS security tables.

Answer:

CICS security tables define access permissions for various resources. They control who can execute transactions, access files, and perform other operations.


72. What is a CICS thread?

Answer:

A CICS thread is a logical flow of control within a CICS transaction. It represents the execution of a program and includes the associated resources.


73. How do you manage threads in CICS?

Answer:

Threads are managed by CICS based on program execution and the flow of control. Programs are invoked as needed and resources are allocated accordingly.


74. Explain the concept of CICS data tables.

Answer:

CICS data tables are structures used to store and retrieve data. They provide a way to organize and access information efficiently.


75. What is a CICS Temporary Storage (TS) queue?

Answer:

A TS queue in CICS is a system-defined queue used for temporary data storage. It’s similar to a TS dataset but is more transient in nature.


76. What is a CICS data area?

Answer:

A CICS data area is a named storage area that can be shared between programs. It allows for the exchange of data within a CICS region.


77. How do you define a data area in CICS?

Answer:

Data areas are defined in the CICS system definition using the DFHCOMMAREA parameter. Each data area is assigned a unique name.

Example:

DFHCOMMAREA LENGTH(80).

78. Explain the purpose of CICS transient data queues.

Answer:

Transient Data Queues (TDQs) in CICS are temporary storage queues used for communication between programs within a region.


79. What is a CICS program restartable unit (PRU)?

Answer:

A Program Restartable Unit (PRU) in CICS is a unit of work that can be restarted from a known point in case of failure.


80. How do you define a PRU in CICS?

Answer:

PRUs are defined using the EXEC CICS HANDLE CONDITION command, specifying the conditions under which the program can be restarted.

Example:

EXEC CICS HANDLE CONDITION
         CONDITION(DATA-ERROR) LABEL(ERROR-HANDLER)
         CONDITION(ABEND) LABEL(ABEND-HANDLER)
         CONTINUE.

81. Explain the purpose of the CICS sign-on table.

Answer:

The CICS Sign-On Table is used to define user IDs and their associated authentication information for access to CICS regions.


82. What is a CICS application definition entry (ADE)?

Answer:

An Application Definition Entry (ADE) in CICS is a system-defined entry that provides information about applications.


83. How do you define an ADE in CICS?

Answer:

ADEs are defined in the CICS system definition using the APPLID parameter. Each entry specifies the application ID and associated attributes.

Example:

APPLID('MYAPP') PROGRAM('MYPROG').

84. Explain the concept of CICS file control.

Answer:

CICS file control involves managing access to files, including opening, reading, writing, and closing files within a CICS region.


85. What is a CICS system dump?

Answer:

A CICS system dump is a snapshot of the system’s memory and registers taken at a specific point in time. It’s used for debugging purposes.


86. What is a CICS conversational transaction?

Answer:

A CICS conversational transaction is a transaction that interacts with a user through a series of screens or messages. It maintains state across multiple transactions.


87. How do you design a conversational transaction in CICS?

Answer:

Designing a conversational transaction involves defining a series of screens and specifying the logic to navigate between them based on user input.


88. Explain the concept of CICS task control.

Answer:

CICS task control involves managing the execution of tasks within a transaction. It includes starting, suspending, and resuming tasks.


89. What is a CICS transient data control block (TDCB)?

Answer:

A Transient Data Control Block (TDCB) in CICS is a system area used to manage transient data queues (TDQs).


90. How do you access a TDQ in CICS?

Answer:

TDQs are accessed using the EXEC CICS READQ TD or WRITEQ TD commands to read from or write to the queue, respectively.

Example (Read from TDQ):

EXEC CICS READQ TD QUEUE('MYTDQ')
          INTO(data-area).

91. Explain the purpose of CICS file control table (FCT).

Answer:

The CICS File Control Table (FCT) is used to define and manage file resources within a CICS region.


92. What is a CICS system initialization table (SIT)?

Answer:

A System Initialization Table (SIT) in CICS contains system-wide parameters and options that control the behavior of the CICS region.


93. How do you configure the SIT in CICS?

Answer:

The SIT is typically configured through a system-wide configuration file, where parameters and their values are specified.

Example (SIT configuration entry):

SIT-PARAMETER(VALUE).

94. Explain the concept of CICS dynamic storage areas.

Answer:

Dynamic storage areas in CICS are regions of storage that are allocated and deallocated at runtime. They provide flexibility for storing data.


95. What is a CICS interval control block (ICB)?

Answer:

An Interval Control Block (ICB) in CICS is used to manage program-controlled intervals (PCIs) and defines the entry points for a program.


96. How do you define an ICB in CICS?

Answer:

ICBs are typically defined implicitly by the CICS system based on program structure and entry points.

Example (COBOL):

01 MY-ICB.
   ...

97. Explain the concept of CICS interval control program (ICP).

Answer:

A CICS Interval Control Program (ICP) is a program that controls a set of tasks within a program-controlled interval (PCI).


98. What is a CICS linkage section?

Answer:

A linkage section in CICS is a section of a program that contains data passed between programs during program-to-program communication.


99. How do you pass data using a linkage section in CICS?

Answer:

Data is passed using the EXEC CICS LINK command. The data in the linkage section of the called program is accessible to the calling program.

Example (COBOL):

EXEC CICS LINK PROGRAM('MYPROG') COMMAREA(data-area).

100. Explain the significance of CICS program restart.

Answer:

CICS program restart allows a program to resume execution from a known point after an interruption or failure, ensuring data integrity.