CICS Interview Questions (1 - 10)

1. What is CICS?

CICS stands for Customer Information Control System. It's a middleware designed by IBM to support rapid, high-volume online transaction processing. CICS allows multiple users to access the same data concurrently, ensuring data integrity and efficient resource management. ​

2. Describe the basic differences between batch and online systems.

FeatureBatch SystemOnline System (CICS)
ExecutionProcesses jobs sequentially, no user inputHandles real-time user interactions
User InteractionNone during executionContinuous user input/output
Response TimeDelayed (scheduled)Immediate/interactive
EnvironmentTypically uses JCL, COBOL, DB2Runs under CICS for transaction processing
VolumeHandle large volumes of data processed at scheduled times without user interactionHandle transactions in real-time with immediate user interaction

3. Differentiate between Multitasking and Multi-threading.

  • Multitasking: The operating system's ability to execute multiple tasks (programs) concurrently. Each task operates independently.
  • Multi-threading: Within a single program, multiple threads (smaller units of a task) execute concurrently, sharing the program's resources but running independently.

4. Describe the differences between a Conversational and a Pseudo-Conversational program.

FeatureConversational ProgramPseudo-Conversational Program
Task DurationTask remains active throughout user interactionTask ends after sending a response and restarts on next input
Resource UsageHolds resources like memory and TCBsFrees resources between screens (more efficient)
PerformanceLess efficient, can cause resource contentionHighly efficient, commonly used in CICS
State ManagementMaintains state in memoryMust save and restore state using COMMAREA or TEMP storage

5. What is "TransID"? Why is it used and where is it defined?

TransID (Transaction ID) is a 4-character identifier in CICS that is used to initiate the execution of a specific program.

Why It Is Used:

  • Maps a user request or terminal input to the appropriate CICS program.
  • Helps start, control, and manage a task within the CICS region.

Where It Is Defined:

  • Defined in the Program Control Table (PCT).
  • Can be created or updated using CEDA.

6. What is the difference between a program and a transaction in CICS?

  • Program: A COBOL or other language module that contains the logic to perform a task.
  • Transaction (TransID): A 4-character identifier used to initiate the execution of a CICS program.

7. Explain the differences between a Transaction and a Task.

  • Transaction: A transaction is a set of operations initiated by a user that performs a specific function. Each transaction is identified by a unique transaction identifier (TRANSID).
  • Task: A task is the execution instance of a transaction. When a user invokes a transaction, CICS starts a task to process it. While multiple users can invoke the same transaction, each invocation results in a separate task.

8. What is the task initiation process in CICS?

When a transaction is initiated:

  • Direct Invocation: A user enters a transaction identifier (TRANSID) at a terminal.
  • Automatic Task Initiation (ATI): CICS starts a transaction automatically based on predefined conditions, such as a TDQ reaching its trigger level.​
  • START Command: A program uses the CICS START command to initiate another transaction.​
  • Distributed Program Link (DPL): A program in one CICS region invokes a transaction in another region.

9. How can a transaction be initiated in CICS?

Transactions in CICS can be initiated in several ways:

  • Direct Invocation: A user enters a transaction identifier (TRANSID) at a terminal.
  • Automatic Task Initiation (ATI): CICS starts a transaction automatically based on predefined conditions, such as a TDQ reaching its trigger level.​
  • START Command: A program uses the CICS START command to initiate another transaction.​
  • Distributed Program Link (DPL): A program in one CICS region invokes a transaction in another region.

10. What is a pseudo-conversational program in CICS?

A pseudo-conversational program simulates a continuous conversation with a user by ending the task after sending a message and starting a new task upon receiving the user's response. This approach conserves system resources by not holding them during user think-time.