cics interview question
1. What is
CICS?
CICS stands for Customer Information 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.
|
Feature |
Batch System |
Online System (CICS) |
|
Execution |
Processes
jobs sequentially, no user input |
Handles
real-time user interactions |
|
User InteractionDiscover more middleware Middleware IMS DB DB2 IBM Information
Management System IBM Db2 SDSF IEFBR14 IDCAMS |
None
during execution |
Continuous
user input/output |
|
Response
Time |
Delayed
(scheduled)Discover more DB2 IBM Db2 IMS DB Middleware IBM Information Management
System middleware IDCAMS SDSF IEFBR14 |
Immediate/interactive |
|
Environment |
Typically
uses JCL, COBOL, DB2 |
Runs
under CICS for transaction processing |
|
Volume |
Handle
large volumes of data processed at scheduled times without user interaction |
Handle
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.
|
Feature |
Conversational Program |
Pseudo-Conversational Program |
|
Task
Duration |
Task
remains active throughout user interaction |
Task
ends after sending a response and restarts on next input |
|
Resource
Usage |
Holds
resources like memory and TCBs |
Frees
resources between screens (more efficient) |
|
Performance |
Less
efficient, can cause resource contention |
Highly
efficient, commonly used in CICS |
|
State
Management |
Maintains
state in memory |
Must
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.
11. Can you
implement a pseudo-conversational program in CICS? Also, Describe some
practical examples of how the techniques are used in real-world scenarios.
Yes, a pseudo-conversational program can be
implemented in CICS and is the recommended approach for building efficient CICS
applications.
How it works?
·
After
sending a screen (EXEC CICS SEND), the program issues a RETURN, ending the
task.
·
CICS
saves the state (typically in a COMMAREA) and restores it when the user
responds.
·
When
the response comes back, CICS starts a new task, passing control and data to
the same program.
Real-World Example Scenarios:
It is widely used in real-world systems like banking,
order processing, and travel booking for efficient resource utilization and
scalability.
12. What
does the CICS translator do?
The CICS translator scans and converts CICS commands
(like EXEC CICS) in a source program (e.g., COBOL) into standard CALL
statements that can be understood by the compiler.
·
Recognizes
and processes CICS commands.
·
Replaces
them with CALL statements to CICS-supplied routines.
·
Prepares
the program for compilation and execution under CICS.
13. What is
meant by program reentrance?
Program reentrance means a program can be safely
executed by multiple tasks at the same time without interfering with each
other.
Key Points -
·
The
program does not modify itself during execution.
·
All
working storage is isolated, typically in COMMAREA or dynamically allocated
memory.
·
Essential
in CICS, as programs may be shared among tasks.
14. What is
Quasi-reentrancy?
Quasi-reentrancy means a program can be interrupted
and safely resumed, as long as it does not modify shared or static areas. It
ensures a CICS program is task-safe, allowing it to be paused and resumed
without corrupting data.
Key Points -
·
Required
for CICS multitasking.
·
Programs
must avoid using working-storage for changing data.
·
Data
should be passed using COMMAREA, TDQ, or TSQ.
15. What is
the importance of the Resource Control Table (RCT)?
The Resource Control Table (RCT) is used in CICS-DB2
environments to define the relationship between CICS transactions and DB2
plans. It controls authorization and resource allocation for DB2 access within
CICS transactions.
Describe the
CICS control blocks.
CICS uses control blocks to manage internal processing
and resource handling:
|
Control Block |
Purpose |
|
TCT
(Terminal Control Table) |
Manages
terminal and transaction associations. |
|
PCT
(Program Control Table) |
Maps
transaction IDs to program names. |
|
PPT
(Processing Program Table) |
Defines
programs that can be executed under CICS. |
|
FCT
(File Control Table) |
Contains
VSAM file definitions used in programs. |
|
DCT
(Destination Control Table) |
Defines
TDQs (Transient Data Queues). |
16. Which
CICS service transaction is used to gain accessibility to CICS control tables?
CEDA is the service transaction used to access and
manage CICS control tables and resource definitions.
Into which
table is the terminal id registered?
TCT (Terminal Control Table)
17. What is
the type of PPT in CICS, and what are the uses of the PPT?
PPT (Processing Program Table) is a CICS system table
that defines how programs are managed and invoked, including their location,
load status, and attributes.
Uses:
·
Maps
program names to their load modules.
·
Indicates
if a program is resident or dynamically loaded.
·
Tracks
program status (e.g., loaded, protected).
·
Enables
CICS to locate and invoke the correct program for execution.
18. What is
the purpose of DCT?
DCT (Destination Control Table) is a CICS system table
that defines and manages Transient Data Queues (TDQs).
Key Functions:
·
Specifies
queue names, types (intra- or extra-partition), and attributes.
·
Controls
how TDQs are created, accessed, and processed.
·
Enables
programs to use WRITEQ TD and READQ TD commands.
19. What is
a CICS map and how is it used in screen handling?
A CICS map is a screen layout definition created using
BMS (Basic Mapping Support) macros. It defines how data is displayed and
received from a terminal screen.
A CICS map is used to define and manage screen
layouts. It allows programs to send and receive data from terminals, enabling
user interaction in online CICS applications.
20. What is
a mapset?
A mapset is a collection of one or more BMS maps used
to define screen layouts for terminal interaction in CICS. It is a group of
maps used in CICS for screen handling, allowing data to be sent to and received
from terminals.
21. What is
the function of DFHMDF BMS macro?
The DFHMDF is BMS macro used to define individual
fields on a CICS map such as position, length, and display attributes. It
specifies field position, length, attributes, and field name. It also controls
how a field is displayed, protected, or modified.
22. What is
the difference between a symbolic map and a physical map in CICS?
·
Physical Map: The compiled version of the screen
layout that defines how data is presented on the terminal.
·
Symbolic Map: A copybook used in application programs
that provides field names and data structures corresponding to the physical
map, facilitating data manipulation within the program.
23. How do
you dynamically set the CURSOR position to a specific field?
What are the three ways available for a program to position the cursor on the
screen?
Cursor position can be set in three different ways -
·
Static Positioning: By coding the IC in
the filed definition, the initial position can be set.
·
Dynamic Cursor Positioning: By moving the ‘-1’ to
the length field of the desired filed.
·
Relative positioning: Exact cursor location
can be set by mentioning the numeric number in the SEND MAP command.
24. What are
the attribute values of Skipper and Stopper fields?
·
Skipper Field Attribute (ASKIP): Makes the field
non-display and non-modifiable. Cursor skips over the field.
·
Stopper Field Attribute (PROT): Makes the field
protected (non-modifiable). Cursor can stop on the field, but input is not
allowed.
25. What is
the Modified Data Tag (MDT), and how are FSET and FRSET related to it?
·
MDT (Modified Data Tag): A bit associated with
each screen field that indicates whether the field has been modified by the
user.
·
FSET (Field Set): An attribute that
forces the MDT to be set on, ensuring the field's data is sent to the
application program, even if the user hasn't modified it.
·
FRSET (Field Reset): An attribute that
resets the MDT, indicating that the field has not been modified.
26. How do
you set the MDT option to ON status, even if data is not entered?
Use the FSET (Field Set) attribute in the BMS map
definition. Set FSET in the ATTRB clause of the BMS map to turn on MDT,
ensuring the field data is always sent to the program.
27. Each map
is divided into numerous fields, with three common working storage fields for
each. Mention them?
Three Common Working-Storage Fields for Each Map Field
in CICS
·
fieldnameI: Input field (data entered by the user)
·
fieldnameO: Output field (data to be displayed)
·
fieldnameA: Attribute field (defines display and
input attributes)
28. What is
the common work area?
The Common Work Area (CWA) is a user-defined memory
area in the CICS main storage that can be shared by multiple tasks or programs.
Key Points:
·
Defined
in the System Initialization Table (SIT).
·
Accessed
using EXEC CICS ADDRESS CWA(data-area).
·
Used
to store global data accessible across transactions.
29. What is
the definition of COMMAREA?
COMMAREA is a data-passing mechanism in CICS, used to
share information between programs or transactions during task execution.
Key Points:
·
Defined
in the Linkage Section of the program.
·
Data
is passed using the EXEC CICS LINK, XCTL, or RETURN commands.
·
Must
be explicitly populated and handled by the program.
30. How
would you classify all the CICS programs?
The programs can be classified into the following
types based on program storage and execution behavior in CICS:
·
Transient Programs – Loaded and deleted
after execution.
·
Resident Programs – Remain in memory after
execution for faster reuse.
·
Quasi-Resident Programs – Initially transient
but retained in memory due to frequent usage.
·
Library Programs – Stored in a CICS
library (DFHRPL) and loaded as needed.
31. What is
EIB? Explain in detail. Also, list the information this contains.
EIB (Execute Interface Block) is a system-defined
control block automatically created by CICS for every task. It provides
task-specific information to the program.
It supplies runtime information like transaction ID,
terminal ID, task number, time, date, etc. It is accessible without being
passed explicitly.
32. What
information can be obtained from the EIBRCODE?
EIBRCODE contains the response or error code from the
last executed CICS command. It provides the reason code for a failure, helping
to diagnose issues with the last CICS command.
33. Which
command is used to release a record on which exclusive control is gained?
Use EXEC CICS UNLOCK to release a record that was
locked with exclusive control in a CICS program.
34. What is
the meaning and use of the EIBAID field?
EIBAID (Execute Interface Block - Attention
Identifier) contains the AID (Attention Identifier) of the key pressed by the
user on a terminal.
Use -
·
Determines
which key (e.g., Enter, PF keys, PA keys, Clear) the user pressed.
·
Helps
control program flow based on user actions.
35. Explain
the difference between synchronous and asynchronous processing in CICS.
|
Type |
Synchronous Processing |
Asynchronous Processing |
|
Execution |
Task
waits for the operation to complete |
Task
continues without waiting for operation to finish |
|
Control
Flow |
Sequential;
next step runs after current ends |
Parallel;
next task may run independently |
|
Example |
LINK,
XCTL, READ |
START
TRANSID to initiate another task |
Synchronous waits for a response before proceeding,
while asynchronous allows tasks to run independently, improving parallelism and
performance in CICS.
36. How can
data be passed between transactions in CICS?
Data can be passed between transactions using:
·
COMMAREA (Communication Area): A predefined memory
area used to pass data between programs or transactions.
·
Temporary Storage Queues (TSQ): Data written to a TSQ
can be read by subsequent transactions.
·
Transient Data Queues (TDQ): Used for sequential
data passing between transactions.
·
Channels and Containers: Allow for passing
large amounts of data between programs or transactions.
37. What are
the differences between LINK, XCTL, and CALL, and when would you use each?
·
CALL: A COBOL statement that invokes a
subroutine within the same program. Control returns to the calling program
after execution.
·
XCTL (Transfer Control): Transfers control from
one program to another at the same logical level without expecting to return.
The original program's context is discarded.
·
LINK: Invokes another program at the next
logical level and expects control to return after the called program finishes.
The original program's context is preserved.
38. Explain
the purpose of the EXEC CICS command and provide an example of its usage.
The EXEC CICS command is used to perform CICS
functions within a program, such as reading input, sending output, accessing
files, managing tasks, and more. It allows COBOL or other high-level programs
to interact with CICS services.
39. Whats
the CICS command used to access the current date and time?
Use ASKTIME to get the current time in ABSTIME format,
and FORMATTIME to convert it into readable date and time.
40. What is
the effect of including the TRANSID in the EXEC CICS RETURN command?
Including TRANSID in the EXEC CICS RETURN command
schedules a new transaction to be started after the current task ends.
EXEC
CICS RETURN TRANSID('TRN1') END-EXEC.
This ends the current task and automatically starts
transaction TRN1.
41. What is
the difference between the INTO and the SET option in the EXEC CICS RECEIVE MAP
command?
·
INTO Option: It copies map data into a
working-storage variable and requires a defined data area.
·
SET Option: It returns a pointer to the map
data, used with a pointer variable and more efficient for large maps.
42. What is
the difference between getting the system time with EIBTIME and ASKTIME
command?
·
EIBTIME: Contains the time when the task started.
It's a static value stored in the EIB (Execute Interface Block). It is used to
get the task’s start time.
·
ASKTIME: Retrieves the current system time at the
moment the command is executed. It returns time in ABSTIME format.
43. What BMS
options do you use in CICS?
Commonly used BMS (Basic Mapping Support) options in
CICS include:
·
ASKIP
– Skips the field during cursor movement.
·
PROT
– Protects the field from user input.
·
UNPROT
– Allows user input in the field.
·
FSET
– Forces Modified Data Tag (MDT) ON to send field even if untouched.
·
IC
– Places the cursor in the field.
·
NUM
– Allows numeric-only input.
·
BRT/NORM/DRK
– Controls field brightness or display intensity.
44. In CICS,
how are ENQ and DEQ used?
·
ENQ (Enqueue): Lock a resource. Used to gain exclusive
control over a resource to prevent other tasks from accessing it
simultaneously.
·
DEQ (Dequeue): Unlock resource. Used to release the
lock obtained by ENQ, making the resource available to others.
45. What is
the function of the EXEC CICS HANDLE CONDITION command?
The EXEC CICS HANDLE CONDITION command is used to
specify error-handling routines for specific CICS exceptions. It directs
program control to a label or paragraph when a specific condition (e.g.,
NOTFND, ENDDATA, PGMIDERR) occurs.
EXEC
CICS HANDLE CONDITION
NOTFND(LABEL-NOT-FOUND)
END-EXEC.
46. What
happens when the NOHANDLE option is used in a CICS command?
The NOHANDLE option tells CICS not to invoke any condition
handlers (like HANDLE CONDITION or HANDLE AID) if an error occurs. When
NOHANDLE is used, CICS suppresses automatic error handling, and the program
must check response codes explicitly.
The program must manually check EIBRESP or EIBRCODE to
handle exceptions. It prevents automatic transfer of control on errors.
47. What is
the difference between TSQ and TDQ, and when would you use each?
|
Temporary Storage Queqe (TSQ) |
Transient Data Queqe (TDQ) |
|
Records
in Temporary Storage can be read more than once |
Temporary
Data Queues can be read only once |
|
Records
in TSQ can be read randomly |
Records
in TDQ can be read only sequentially |
|
You
may update an existing item in a TSQ |
A
record in a TDQ cannot be updated |
|
TSQ
names are dynamically defined in the application program |
TDQs
name must first be defined in the DCT (Destination Control Table) |
|
TSQ
cannot be accessed in batch |
TDQ
may be used by batch application |
|
TSQ
cannot started automatically a CICS transaction |
TDQ
can started automatically a CICS transaction |
48. What
does Automatic Task Initiation mean in CICS?
Automatic Task Initiation (ATI) allows CICS to
automatically start a specific transaction when certain conditions are met,
such as when a TDQ reaches a predefined trigger level. This feature enables
automated processing without manual intervention.
49. What is
an ASRA abend, and how do you resolve it?
An ASRA abend indicates that a program check has
occurred, often due to data exceptions like division by zero or invalid data
types. To resolve it, you can:
·
Analyze the Abend: Use debugging tools to
determine the cause.
·
Check Data Validity: Ensure that the data
being processed is valid and within expected ranges.
·
Review Program Logic: Examine the code for
logical errors that could lead to the abend.
50. Describe
the CICS communication methods and their use cases.
·
TDQ (Transient Data Queue): Sequential message
passing between programs or for logging. Types: Intra- and
inter-partition.
·
TSQ (Temporary Storage Queue): Temporary data sharing
between tasks/programs.
·
LINK / XCTL: Program-to-program communication. LINK
returns control; XCTL does not.
·
SEND / RECEIVE: User interaction via
terminal screens using BMS maps.
·
MRO / ISC (Inter-region communication): Communicate across
CICS regions (same or different systems).
·
Web Services / Sockets: Integration with
external systems using HTTP, SOAP, REST, or TCP/IP.
·
51.
How Dynamic Memory Allocation is Handled in the CICS Program?
·
CICS handles dynamic memory allocation using the GETMAIN command
to allocate memory and FREEMAIN to release it.
·
52.
Explain the term Multi Region Operation.
·
Multi Region Operation (MRO) is a CICS feature that allows
multiple CICS regions to communicate and work together on the same system or
across different systems. The main purpose is to distribute workload, improve
performance, and enable modular system design.
·
53.
What exactly is CEMT?
·
CEMT (CICS Execute Master Terminal) is a CICS-supplied
transaction used to monitor and manage CICS resources at runtime. It display,
install, activate, or modify resources like programs, files, transactions,
TDQs, etc.
·
54.
The error code AEIV?
·
The CICS error code AEIV indicates an "Invalid
Request", typically caused by an incorrect parameter or an unsupported
operation in a CICS command.
1. How do
you define a CICS program in the CICS region?
To define a CICS program in the region, you use the
Program Processing Table (PPT) either statically (DFHCSDUP) or dynamically
(CEDA).
CEDA
DEFINE PROGRAM(PROGNAME)
GROUP(GROUPNAME)
LANGUAGE(COBOL)
·
PROGNAME:
Name of the program.
·
GROUP:
CICS resource group the program belongs to.
·
LANGUAGE:
Programming language (e.g., COBOL, PL/I).
2. How do
you handle errors in CICS programs? Provide a coding example.
Errors are handled using the EXEC CICS HANDLE
CONDITION command, which redirects control to a specific label or paragraph
when a specified condition occurs. For example -
EXEC
CICS
HANDLE CONDITION
NOTFND(ERROR-ROUTINE)
END-EXEC.
EXEC
CICS READ FILE('EMPFILE')
INTO(WS-EMP-DATA)
RIDFLD(EMP-ID)
END-EXEC.
...
ERROR-ROUTINE.
MOVE 'Record
not found.' TO
WS-ERROR.
EXEC CICS RETURN END-EXEC.
3. What are
CICS BMS maps and how do you define them?
CICS BMS (Basic Mapping Support) maps define screen
layouts for CICS applications. They separate screen design from application
logic, allowing for formatted, interactive displays (like maps for data entry
or menus).
How to Define BMS Maps?
·
Using BMS Macros:
o
DFHMSD – Declares the mapset.
o
DFHMDI – Defines the map (screen).
o
DFHMDF – Defines individual fields
(attributes, positions, lengths).
·
Assemble the macros to generate:
o
A
load module (used at runtime)
o
A
copybook (used in COBOL for referencing fields)
4. When
using multiple maps, how does one determine the storage in the symbolic map?
When multiple maps are used in a mapset, each map gets
its own symbolic map, and the total storage is determined by the combined size
of all symbolic maps in the mapset.
5. What are
the primary differences between PCT and FCT?
|
PCT (Program Control Table) |
FCT (File Control Table) |
|
Defines
transaction-to-program relationships |
Defines
file and dataset access for CICS programs |
|
Maps
a Transaction ID (TRANID) to the program that processes it |
Maps
a logical filename (DDNAME) to a physical dataset |
|
Used
during transaction initiation (e.g., EXEC CICS START or user input) |
Used
for file operations (e.g., READ, WRITE, DELETE) |
|
Contains:
Transaction ID, Program name to be executed and Security & scheduling
attributes. |
Contains:
Dataset name (DSNAME), File access mode (VSAM, TSQ, TDQ, etc.), Record length
& key details (for VSAM). |
6. What are
some primary transaction uses in the context of CICS?
|
Transaction |
Purpose |
|
CEMT |
Master
transaction to view, process. |
|
CEBR |
Browse
Temporary Storage Queue |
|
CECI |
Command-level
interpreter |
|
CEDF |
Debugging
tool |
|
CESF |
Sign-off |
|
CESN |
Sign-on
(security) |
7. What
effect would it have on RECEIVE MAP if we press PF and PA keys?
The RECEIVE MAP command completes, but EIBAID will
reflect the pressed key. The program must check EIBAID to decide further
processing (e.g., branching logic). If PA1 is pressed, CICS may override the
program flow (unless explicitly handled).
8. What is
the process of terminating a transaction?
In CICS, a transaction can be terminated in the
following ways:
·
Normal Termination (Explicit) –
o
Using
EXEC CICS RETURN in the application program, which passes control back to CICS.
o
Optionally,
COMMIT (SYNCPOINT) is issued to finalize updates before termination.
·
Abnormal Termination (Forced) –
o
PA1
Key – Pressing PA1 typically forces an immediate rollback and exits the
transaction.
o
Transaction
Timeout – If the transaction exceeds its defined run time limit, CICS aborts
it.
o
Program
ABEND – If the program crashes, CICS terminates the transaction with a dump (if
enabled).
·
Implicit Termination –
o
When
the last program issues RETURN without specifying a next transaction.
o
If
the program ends without a CICS command (rare, usually results in an error).
9. What are
the situations under which NEWCOPY is required?
·
After a Program Update – When a
COBOL/PL/I/Assembler program is modified and recompiled, NEWCOPY refreshes the
in-memory copy without a CICS restart.
·
First-Time Load – If a program is newly
installed and needs to be loaded into CICS for execution.
·
Abend Fix – If a program abends due to a logic error
and a corrected version is deployed.
10. Can you
have CICS code in a copybook? If yes, what happens during compilation?
Yes, you can include CICS commands in a copybook. The
copybook must be included before translation, not after. CICS code is allowed
in copybooks, and during compilation, the CICS translator processes it normally
as part of the main program.
11. What is
a two Phase commit in CICS?
A two-phase commit in CICS ensures atomicity across
multiple resources (like VSAM, DB2, MQ) by coordinating updates in two phases:
·
Prepare Phase – CICS asks all
participating systems if they're ready to commit. Each system votes
"YES" (can commit) or "NO" (must abort)
·
Commit/Abort Phase – If all vote
"YES": CICS tells all systems to permanently commit changes. If any
vote "NO": CICS forces all systems to rollback changes
12. What is
the purpose of the Program List Table?
The Program List Table (PLT) in CICS defines
initialization programs that run when:
·
CICS
starts up
·
A
CICS region shuts down
·
A
transaction is initiated for the first time
13. Which
CICS system program is responsible for handling automatic task initialization?
The CICS system program (DFHSIP) responsible for
automatic task initiation during system startup or when certain events (like
file triggers) occur. It manages initial task scheduling and region control.
14. I have
written a CICS program. What tables should I setup to run this program?
To run a CICS program, you need to define entries in
the following control tables:
·
PPT
(Program Processing Table) – Defines the program name and its attributes.
·
PCT
(Program Control Table) – Maps the transaction ID (TransID) to your program.
·
FCT
(File Control Table) (if files are used) – Defines the files
your program will access.
·
RCT
(Resource Control Table) (if DB2 tables are used) – Defines
the plan your program will access.
·
DCT
(Destination Control Table) (if TDQs are used) – Defines any
Transient Data Queues used.
15. In which
table would you make an entry for a BMS map?
A BMS map is defined in the PPT, just like application
programs, to make it available for execution in CICS.
16. What is
the option of the DFHDCT macro which makes it possible to recover logically
deleted records from an Intrapartition TDQ?
Use REUSE=YES in the DFHDCT macro to enable recovery
of logically deleted records in an Intrapartition TDQ.
17. What is
the primary function of the Sign-on Table?
The Sign-on Table (SNT) in CICS is a security control
table that:
·
Validates
user IDs and passwords during login.
·
Associates
users with security profiles or permissions.
·
Supports
resource-level security using RACF or external security managers.
18. Which is
the program which determines whether a transaction should be restarted?
The Restart Manager (DFHREST) is the CICS system
program that determines whether a transaction should be automatically restarted
after a failure.
19. Mention
the 5 fields available in the symbolic map for every 'NAMED' field in the
DFHMDI macro?
For every NAMED field defined in a DFHMDI BMS macro,
the symbolic map automatically generates these 5 standard fields:
·
fieldnameO
– Output field (data to be displayed)
·
fieldnameI
– Input field (data entered by the user)
·
fieldnameA
– Attribute byte (display/input characteristics)
·
fieldnameL
– Length of data entered
·
fieldnameF
– Modified Data Tag (MDT) flag
20. Name
three ways the Modified Data Tag can be set on?
The Modified Data Tag (MDT) in CICS BMS maps can be
set ON in three primary ways:
·
User Input: - Automatically set when the user
types into an unprotected field.
·
FSET Attribute: - Use the FSET option in the map
field to force MDT ON, even if the user doesn't type.
·
IC Attribute with Cursor: - When the cursor
is placed in a field using the IC attribute, and the user presses Enter, MDT is
set ON.
21. What is
the difference between FSET and FRSET?
In CICS BMS, FSET and FRSET are attributes used to
control field behavior in symbolic maps:
FSET (Force Set):
·
Forces
the Modified Data Tag (MDT) to be ON for a field, ensuring it is always
transmitted to the program (even if unchanged).
·
Set
via ATTRB=FSET in the DFHMDF macro or programmatically by setting the attribute
byte (fieldname+F) to X'01'.
·
Guarantees
the field is included in RECEIVE MAP.
FRSET (Field Reset):
·
Forces
the MDT to be OFF, meaning the field is not transmitted unless modified by the
user.
·
Set
via ATTRB=FRSET in DFHMDF or by setting the attribute byte to X'00'.
·
Excludes
the field from RECEIVE MAP unless explicitly edited.
22. What is
the difference between the enter key, the PF keys and the PA keys?
|
Key Type |
Purpose |
CICS Handling |
|
EnterDiscover more Application
software application SDSF IMS DB IBM Information
Management System IDCAMS IEFBR14 |
Submits
the current screen data |
Sets
EIBAID=DFHENTER |
|
PF
Keys (PF1–PF24) |
Triggers
application-specific functions |
Sets
EIBAID=DFHPF1 to DFHPF24 |
|
PA
Keys (PA1–PA3) |
Emergency/interrupt
actions |
Sets
EIBAID=DFHPA1 to DFHPA3 |
23. What do the
keywords MAPONLY and DATAONLY mean?
In CICS BMS, MAPONLY and DATAONLY are keywords used
with the SEND MAP command to control screen output:
|
Keyword |
Purpose |
Effect |
|
MAPONLY |
Sends
only the map’s static fields (labels, fixed text) |
Ignores
variable data fields; redisplays the screen layout without updating dynamic
content. |
|
DATAONLY |
Sends
only variable data fields (user-input/output fields) |
Skips
static text; updates only modifiable fields (e.g., for partial screen
refreshes). |
24. What are
the two outputs created as a result of generation of a map?
When a BMS (Basic Mapping Support) map is generated,
it produces two key outputs:
·
Physical Map (Load Module) – Stored in the CICS
load library, used by CICS to display the screen. Stored in a CICS load library
(DFHRPL).
·
Symbolic Map (Copybook) – Source code (e.g.,
COBOL/PL/I copybook) defining field names and attributes.
25. What is
the use of DSECT parameter in BMS?
The DSECT parameter in BMS is used to generate the
symbolic map only (copybook), without creating the load module. It is used when
you only need the field definitions for program logic, not for actual screen
display.
26. Can you
use OCCURS in a BMS map?
Yes, you can use the OCCURS option within a BMS map
definition to define repeated fields, essentially treating them as an array,
but each element of the array is a single map field.
27. Can you
define multiple maps in a BMS mapset?
Yes, you can define multiple maps (screens) in a
single BMS mapset. Each map is defined with its own DFHMDI macro within the
mapset's DFHMSD declaration.
28. What
does the BUFFER option in RECEIVE mean?
The BUFFER option in the RECEIVE command tells CICS to
place the entire inbound message into a specified storage area (buffer),
without mapping it to a screen layout. Typically used in non-BMS applications
or for raw data input.
29. What is
the option that is used to erase all unprotected fields during a SEND MAP
operation?
The ERASE option in the SEND MAP command is used to
clear all unprotected fields on the screen before displaying the map.
30. What is
DFHEIBLK?
DFHEIBLK (Execute Interface Block) is a CICS-provided
control structure that supplies critical runtime information to a CICS program.
It contains:
·
Task/Transaction
Data (e.g., transaction ID, terminal ID).
·
Response
Codes (e.g., EIBRESP, EIBRCODE for error handling).
·
Command-Specific
Details (e.g., length of data received)
31. If
DATAONLY option is specified in the SEND MAP command what will happen?
The DATAONLY option sends only the data, not the map
format, reducing overhead when the screen layout doesn't need to change.
32. What is
the difference between a physical BMS mapset and a logical BMS mapset?
EIB (Execute Interface Block) is a CICS-provided
control block that supplies critical runtime information to an application
program. Key Uses of EIB:
·
EIBTRNID:
Current Transaction ID (e.g., 'INQ1').
·
EIBTRMID:
Terminal ID of the user.
·
EIBRESP:
Response code after CICS commands (e.g., DFHRESP(NORMAL)).
·
EIBRCODE:
Additional error details.
·
EIBCALEN:
Length of COMMAREA (if passed between programs).
·
EIBFN:
Internal CICS function code (for debugging).
33. What
does it mean when EIBCALEN is equal to zeros?
When EIBCALEN = 0, it means no data was passed in the
COMMAREA to the program.
34. The
DFHCOMMAREA is used to pass information from one application to another. What
are some other ways that this function can be accomplished?
Besides DFHCOMMAREA, CICS programs can pass data
using:
·
Temporary Storage Queues (TSQ) – WRITEQ TS / READQ TS
for persistent or temporary data.
·
Transient Data Queues (TDQ) – Intra/Extra-partition
queues via WRITEQ TD / READQ TD.
·
Shared Storage (GETMAIN/FREEMAIN) – Allocate shared memory
with EXEC CICS GETMAIN.
·
File/DB Access – VSAM, DB2, or other
databases as intermediate storage.
·
Channel/Container (CICS TS 3.1+) – Modern alternative:
EXEC CICS PUT CONTAINER / GET CONTAINER.
35. How do
you access storage outside your CICS program?
You can access storage outside your CICS program using
the EXEC CICS ADDRESS command.
36. Before
issuing an ASKTIME command what will be the values in the EIBDATE and EIBTIME
fields if the EIB?
Before issuing an ASKTIME command, EIBDATE contains
the date when the task started and EIBTIME contains the time when the task
started.
37. What
will be the length of the eibcalen, if the transaction is used to cics first
time?
When a transaction is used for the first time (initial
execution) in CICS, the EIBCALEN (Communication Area Length) field in the EIB
will be zero (0) because no COMMAREA has been passed to the program yet.
38. How many
conditions can you include in a single HANDLE CONDITION command?
In a single HANDLE CONDITION command in CICS, you can
include up to 12 condition names to handle multiple exceptions.
39. What is
the difference between EXEC CICS HANDLE CONDTION and an EXEC CICS IGNORE
command?
|
Command |
Purpose |
Effect |
|
HANDLE
CONDITION |
Defines
custom error-handling routines for specific CICS conditions (e.g., NOTFND,
ERROR) |
Redirects
control to a labeled paragraph if the specified condition occurs |
|
IGNORE
CONDITION |
Disables
(ignores) a previously defined HANDLE CONDITION for a specific condition |
Restores
default CICS behavior (abend/return) for that condition |
40. When a
task suspends all the handle conditions via the PUSH command, how does the task
reactivate all the handle conditions?
To reactivate handle conditions after a PUSH HANDLE
command, use the POP HANDLE command. This restores the previous HANDLE
CONDITION, HANDLE AID, and HANDLE ABEND settings that were saved during the
PUSH.
41. Which is
the AID that will not be identified in the ANYKEY option of the HANDLE AID
command?
DFHCLEAR (CLEAR key) is not recognized by HANDLE AID
ANYKEY and must be explicitly handled if needed.
42. A HANDLE
CONDITION remains active until the end of the program or until another HANDLE
CONDITION command (True or False).
True
43. What is
the meaning of the SYNCPOINT command?
The SYNCPOINT command is used to commit all changes
made by a task to resources like DB2, VSAM files, and queues.
44. What is a transid and explain the system transid CEMT?
A TransID (Transaction Identifier) is a 4-character
code used to start a CICS transaction, which triggers the execution of a
specific program.
CEMT is a CICS-supplied system transaction used to
inspect, modify, and manage CICS resources dynamically.
45. Why is
it important not to execute a STOP RUN in CICS?
Executing STOP RUN in a CICS program is avoided
because it terminates the Entire Task – Unlike a structured EXEC CICS RETURN,
STOP RUN forcibly ends the CICS task, bypassing CICS cleanup routines.
46. Why
doesn’t CICS use the COBOL Open and Close statements?
COBOL OPEN and CLOSE are meant for batch processing,
not for CICS's online, multitasking environment. CICS doesn’t use COBOL
OPEN/CLOSE because it handles file access internally to support efficient,
online transaction processing.
47. How is
dynamic memory allocated within a CICS application program?
CICS allocates dynamic memory using GETMAIN and
releases it with FREEMAIN, allowing flexible storage management during task
execution.
48. What is
the command which will delete a program Loaded into the main storage using LOAD
command?
To remove a program loaded with LOAD, use the RELEASE
command — it frees the memory allocated to that program.
49. What
will happen when the resource security check has failed on the program which
has been specified in the PROGRAM option of the LOAD command?
On a security failure during LOAD, CICS raises a
PGMIDERR, and the program is not loaded into memory.
50. What is
the command that is used to delay the processing of a task for a specified time
interval or until a specified time?
DELAY is used to pause task execution for a given
duration or until a set time in CICS.
1. How will you run a
online program. ?
By using Transaction
ID, online program can run.
2. How will
you create maps
in cics ?
Two
ways.
A. BMS
MACROS.
B. SDF
TOOL (SCREEN DEFINITION FACILITY)
DFHMSD – Mapset
DFHMDI – Map
DFHMDF - Field
3. What are the types
of maps?
Two types of MAP.
1. Physical Map:
controls the screen alignment, sending and reccieving of constants and data to
and from a terminal. They are coded using BMS macros, assembled and link edited
into CICS LOAD LIBRARY. They ensure the device independence in application
programs.
2. Symbolic Map: defines
the map fields used to store the variable data referenced in COBOL program.
They are also coded BMS macros. But after assembling, they are placed in a copy
library and then copied into CICS programs using COPY statements. They ensure
device and format independence to the application program.
4. What is MDT.
Modified data tag
MDT is one bit field of the attribute
byte. The program can receive only the fields with MDT ‘1’ on RECEIVE. Effective use of MDT can reduce the data traffic drastically in
the communication line.
MDT can be SET/RESET in the following ways:
1. When
the user modifies the field, the MDT of the field is automatically set to ON.
2. CTRL=FRSET
of DFHMSD or DFHMDI will RESET the MDT to ‘OFF’ for all the fields In the
mapset or map. FSET keyword of the attribute operand definition of DFHMDF will
set the MDT to ‘ON’. It overrides the FRSET definition for the specific field.
3. Before
sending the screen, by overriding the MDT bit of attribute byte of the field
the MDT can be set to ‘on’.
5. What are the
parameters in DFHMSD
DFHMSD
(defined field hierarchy map set definition)
Mapsetname
DFHMSD TYPE=&SYSPARM/MAP/SECT,
MODE=INPUT/IN/OUT,
T10APEX=YES,
LANG=COBOL/ASM/PL,
STORAGE=AUTO,
CTRL= (FREEKB,FRSET)
1. TYPE:
If specifies the type of the map to be generated.
&SYSPROM: It will generates both
physical and symbolic map
MAP: It generates only the physical map
DSET: It will generate only symbolic map
·
Physical map is the load module of the
BMS MACROS
·
Symbolic map is the copy book generated
for the fields with field name.
2. MODE:
It specifies the type of use of map.
INPUT: It enables the map to be used for
both Input and output pupose.
IN: for input maps lik entry screens
OUT: for output maps like display
screens
3. TIOAPFX
(terminal input output area prefix): when TFOAPFX=YES then system generates a
12 byte filler in which the control information pressed by the user.
The 12 byte memory is TIOA
4. LANG:
It specifies the programing language with which we can use the map.
5. STORAGE:
When STORAGE=AUTO, is specified system allocates a separate memory for the map
set.
6. Difference between
XCTL&LINK
XCTL
is used to pass control from one program to another but doesn’t expect the
control to return back.
SYNTAX:
EXEC CICS
XCTL
PROGRAM(PROGRAM NAME)
END EXEC
LINK:
It is used to pass control from one prog. to another but the control is
expected to return back.
7. Difference
between conversation&psuedo conversation
CONVERSATION: processing
transaction is called conversation.
PSUEDO CONVERSATION: for
sending and receiving of message, we will use pseudo conversation.
8. Syntax to use maps
in cobol -cics program
COPY MAPSETNAMEI, MAPSETNAMEO
9. What is EIBCALEN
EXECUTE
INTERFACE BLOCK COMMUNICATION AREA LENGTH
If
EIBCALEN = 0
Indicates user not entered any
data
ELSE
User entered some data
SYNTAX:
IF
EIBCALEN = 0
PERFORM SEND-PARA
ELSE
PERFORM PROCESS-PARA
10. What is DFHCOMMAREA
It is the communication area
between the two programs or two tasks. COMM area is declared in the COBOL
program as follows.
SYNTAX: LINKAGE
SECTION
01 FHCOMMAREA
PIC X(100)
In every CICS program DFHCOMMAREA
is declared and the maximum data length can be 32767(32k). It is used to know
whether he user has entered data in the screen or not It stores the count of
characters entered on the screen. If EIBCALEN is ‘0’ then it indicates user has
not entered any data. ELSE User has entered data.
Note: If NO DFHCOMMAREA declared then system takes a
one byte (1B) DFHCOMMAREA.
11. DFHRESP options
WHEN DFHRESP (NORMAL) -> FILE IS FOUND
WHEN DFHRESP (NOT FOUND) -> FILE IS NOT FOUND
WHEN DFHRESP (LENERR) -> LENGTH ERROR
WHEN DFHRESP (DUPREC) -> DUPLICATE RECORD
12. How to use VSAM
file in COBOL- CICS program
Reading the records sequentially
in CICS:
EXEC CICS
START BR
FILE(FILE-NAME)
RIDFLD(POL-NUM) ->record
identification field
KEYLEN(LENTH)
END-EXEC.
EXEC CICS
READ NEXT
FILE(LOG.FILE-NAME)
RIDFLD(FIELDNAME)
END-EXEC.
13. TYPES OF CURSORS IN
CICS
1.STATIC
CURSOR POSITIONING: USING IC
2.DYNAMIC
CURSOR POSITIONING:
Dynamically to place the cursor into a desired field
we need to move ‘-1’ to its length.
MOVE ‘PLEASE ENTER CORRECT PASSWORD’ TO ERRMSG0
MOVE -1 TO PWDL
PERFORM 1600_SEND.
3.RELATIVE
CURSOR POSITIONING:
Relatively the cursor is positioned at a desired
field by specifying the relative byte position compared to the first byte.
EXEC CICS
SEND
MAP(’MAP1’)
MAP(‘MAPST1’)
CURSOR(842)
END_EXEC.
14. How will you create
COBOL+CICS+DB2 program
15. What are the
commands to execute MAP& PROGRAM
CEDA-CICS execution,
definition and administration. Command is used to define and install
mapsetof PGM.
By using CECI(CICS execution command interruption)
command is used to send map to online screen.
16. What are the types
of QUEUEs
Queues are of 2 types:
1. TSQ
(temporary storage queue)
2. TDQ
(transient data queue)
17. TSQ&TDQ
1. TSQ:
Queue records are written based on item numbers. TSQ records can be accessed
sequentially, dynamically or randomly.
2. TDQ:
records are written without item number. Records can be read only sequentially.
A TDQ record once read is deleted automatically.
18. In which QUEUE we
can implement PAGE UP&PAGE DOWN
In TSQ
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.
|
Feature |
Batch System |
Online System (CICS) |
|
Execution |
Processes
jobs sequentially, no user input |
Handles
real-time user interactions |
|
User InteractionDiscover more middleware Middleware IMS DB DB2 IBM Information
Management System IBM Db2 SDSF IEFBR14 IDCAMS |
None
during execution |
Continuous
user input/output |
|
Response
Time |
Delayed
(scheduled)Discover more DB2 IBM Db2 IMS DB Middleware IBM Information Management
System middleware IDCAMS SDSF IEFBR14 |
Immediate/interactive |
|
Environment |
Typically
uses JCL, COBOL, DB2 |
Runs
under CICS for transaction processing |
|
Volume |
Handle
large volumes of data processed at scheduled times without user interaction |
Handle
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.
|
Feature |
Conversational Program |
Pseudo-Conversational Program |
|
Task
Duration |
Task
remains active throughout user interaction |
Task
ends after sending a response and restarts on next input |
|
Resource
Usage |
Holds
resources like memory and TCBs |
Frees
resources between screens (more efficient) |
|
Performance |
Less
efficient, can cause resource contention |
Highly
efficient, commonly used in CICS |
|
State
Management |
Maintains
state in memory |
Must
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.
11. Can you
implement a pseudo-conversational program in CICS? Also, Describe some
practical examples of how the techniques are used in real-world scenarios.
Yes, a pseudo-conversational program can be
implemented in CICS and is the recommended approach for building efficient CICS
applications.
How it works?
·
After
sending a screen (EXEC CICS SEND), the program issues a RETURN, ending the
task.
·
CICS
saves the state (typically in a COMMAREA) and restores it when the user
responds.
·
When
the response comes back, CICS starts a new task, passing control and data to
the same program.
Real-World Example Scenarios:
It is widely used in real-world systems like banking,
order processing, and travel booking for efficient resource utilization and
scalability.
12. What
does the CICS translator do?
The CICS translator scans and converts CICS commands
(like EXEC CICS) in a source program (e.g., COBOL) into standard CALL
statements that can be understood by the compiler.
·
Recognizes
and processes CICS commands.
·
Replaces
them with CALL statements to CICS-supplied routines.
·
Prepares
the program for compilation and execution under CICS.
13. What is
meant by program reentrance?
Program reentrance means a program can be safely
executed by multiple tasks at the same time without interfering with each
other.
Key Points -
·
The
program does not modify itself during execution.
·
All
working storage is isolated, typically in COMMAREA or dynamically allocated
memory.
·
Essential
in CICS, as programs may be shared among tasks.
14. What is
Quasi-reentrancy?
Quasi-reentrancy means a program can be interrupted
and safely resumed, as long as it does not modify shared or static areas. It
ensures a CICS program is task-safe, allowing it to be paused and resumed
without corrupting data.
Key Points -
·
Required
for CICS multitasking.
·
Programs
must avoid using working-storage for changing data.
·
Data
should be passed using COMMAREA, TDQ, or TSQ.
15. What is
the importance of the Resource Control Table (RCT)?
The Resource Control Table (RCT) is used in CICS-DB2
environments to define the relationship between CICS transactions and DB2
plans. It controls authorization and resource allocation for DB2 access within
CICS transactions.
Describe the
CICS control blocks.
CICS uses control blocks to manage internal processing
and resource handling:
|
Control Block |
Purpose |
|
TCT
(Terminal Control Table) |
Manages
terminal and transaction associations. |
|
PCT
(Program Control Table) |
Maps
transaction IDs to program names. |
|
PPT
(Processing Program Table) |
Defines
programs that can be executed under CICS. |
|
FCT
(File Control Table) |
Contains
VSAM file definitions used in programs. |
|
DCT
(Destination Control Table) |
Defines
TDQs (Transient Data Queues). |
16. Which
CICS service transaction is used to gain accessibility to CICS control tables?
CEDA is the service transaction used to access and
manage CICS control tables and resource definitions.
Into which
table is the terminal id registered?
TCT (Terminal Control Table)
17. What is
the type of PPT in CICS, and what are the uses of the PPT?
PPT (Processing Program Table) is a CICS system table
that defines how programs are managed and invoked, including their location,
load status, and attributes.
Uses:
·
Maps
program names to their load modules.
·
Indicates
if a program is resident or dynamically loaded.
·
Tracks
program status (e.g., loaded, protected).
·
Enables
CICS to locate and invoke the correct program for execution.
18. What is
the purpose of DCT?
DCT (Destination Control Table) is a CICS system table
that defines and manages Transient Data Queues (TDQs).
Key Functions:
·
Specifies
queue names, types (intra- or extra-partition), and attributes.
·
Controls
how TDQs are created, accessed, and processed.
·
Enables
programs to use WRITEQ TD and READQ TD commands.
19. What is
a CICS map and how is it used in screen handling?
A CICS map is a screen layout definition created using
BMS (Basic Mapping Support) macros. It defines how data is displayed and
received from a terminal screen.
A CICS map is used to define and manage screen
layouts. It allows programs to send and receive data from terminals, enabling
user interaction in online CICS applications.
20. What is
a mapset?
A mapset is a collection of one or more BMS maps used
to define screen layouts for terminal interaction in CICS. It is a group of
maps used in CICS for screen handling, allowing data to be sent to and received
from terminals.
21. What is
the function of DFHMDF BMS macro?
The DFHMDF is BMS macro used to define individual
fields on a CICS map such as position, length, and display attributes. It
specifies field position, length, attributes, and field name. It also controls
how a field is displayed, protected, or modified.
22. What is
the difference between a symbolic map and a physical map in CICS?
·
Physical Map: The compiled version of the screen
layout that defines how data is presented on the terminal.
·
Symbolic Map: A copybook used in application programs
that provides field names and data structures corresponding to the physical
map, facilitating data manipulation within the program.
23. How do
you dynamically set the CURSOR position to a specific field?
What are the three ways available for a program to position the cursor on the
screen?
Cursor position can be set in three different ways -
·
Static Positioning: By coding the IC in
the filed definition, the initial position can be set.
·
Dynamic Cursor Positioning: By moving the ‘-1’ to
the length field of the desired filed.
·
Relative positioning: Exact cursor location
can be set by mentioning the numeric number in the SEND MAP command.
24. What are
the attribute values of Skipper and Stopper fields?
·
Skipper Field Attribute (ASKIP): Makes the field
non-display and non-modifiable. Cursor skips over the field.
·
Stopper Field Attribute (PROT): Makes the field
protected (non-modifiable). Cursor can stop on the field, but input is not
allowed.
25. What is
the Modified Data Tag (MDT), and how are FSET and FRSET related to it?
·
MDT (Modified Data Tag): A bit associated with
each screen field that indicates whether the field has been modified by the
user.
·
FSET (Field Set): An attribute that
forces the MDT to be set on, ensuring the field's data is sent to the
application program, even if the user hasn't modified it.
·
FRSET (Field Reset): An attribute that
resets the MDT, indicating that the field has not been modified.
26. How do
you set the MDT option to ON status, even if data is not entered?
Use the FSET (Field Set) attribute in the BMS map
definition. Set FSET in the ATTRB clause of the BMS map to turn on MDT,
ensuring the field data is always sent to the program.
27. Each map
is divided into numerous fields, with three common working storage fields for
each. Mention them?
Three Common Working-Storage Fields for Each Map Field
in CICS
·
fieldnameI: Input field (data entered by the user)
·
fieldnameO: Output field (data to be displayed)
·
fieldnameA: Attribute field (defines display and
input attributes)
28. What is
the common work area?
The Common Work Area (CWA) is a user-defined memory
area in the CICS main storage that can be shared by multiple tasks or programs.
Key Points:
·
Defined
in the System Initialization Table (SIT).
·
Accessed
using EXEC CICS ADDRESS CWA(data-area).
·
Used
to store global data accessible across transactions.
29. What is
the definition of COMMAREA?
COMMAREA is a data-passing mechanism in CICS, used to
share information between programs or transactions during task execution.
Key Points:
·
Defined
in the Linkage Section of the program.
·
Data
is passed using the EXEC CICS LINK, XCTL, or RETURN commands.
·
Must
be explicitly populated and handled by the program.
30. How
would you classify all the CICS programs?
The programs can be classified into the following
types based on program storage and execution behavior in CICS:
·
Transient Programs – Loaded and deleted
after execution.
·
Resident Programs – Remain in memory after
execution for faster reuse.
·
Quasi-Resident Programs – Initially transient
but retained in memory due to frequent usage.
·
Library Programs – Stored in a CICS
library (DFHRPL) and loaded as needed.
31. What is
EIB? Explain in detail. Also, list the information this contains.
EIB (Execute Interface Block) is a system-defined
control block automatically created by CICS for every task. It provides
task-specific information to the program.
It supplies runtime information like transaction ID,
terminal ID, task number, time, date, etc. It is accessible without being
passed explicitly.
32. What
information can be obtained from the EIBRCODE?
EIBRCODE contains the response or error code from the
last executed CICS command. It provides the reason code for a failure, helping
to diagnose issues with the last CICS command.
33. Which
command is used to release a record on which exclusive control is gained?
Use EXEC CICS UNLOCK to release a record that was
locked with exclusive control in a CICS program.
34. What is
the meaning and use of the EIBAID field?
EIBAID (Execute Interface Block - Attention
Identifier) contains the AID (Attention Identifier) of the key pressed by the
user on a terminal.
Use -
·
Determines
which key (e.g., Enter, PF keys, PA keys, Clear) the user pressed.
·
Helps
control program flow based on user actions.
35. Explain
the difference between synchronous and asynchronous processing in CICS.
|
Type |
Synchronous Processing |
Asynchronous Processing |
|
Execution |
Task
waits for the operation to complete |
Task
continues without waiting for operation to finish |
|
Control
Flow |
Sequential;
next step runs after current ends |
Parallel;
next task may run independently |
|
Example |
LINK,
XCTL, READ |
START
TRANSID to initiate another task |
Synchronous waits for a response before proceeding,
while asynchronous allows tasks to run independently, improving parallelism and
performance in CICS.
36. How can
data be passed between transactions in CICS?
Data can be passed between transactions using:
·
COMMAREA (Communication Area): A predefined memory
area used to pass data between programs or transactions.
·
Temporary Storage Queues (TSQ): Data written to a TSQ
can be read by subsequent transactions.
·
Transient Data Queues (TDQ): Used for sequential
data passing between transactions.
·
Channels and Containers: Allow for passing
large amounts of data between programs or transactions.
37. What are
the differences between LINK, XCTL, and CALL, and when would you use each?
·
CALL: A COBOL statement that invokes a
subroutine within the same program. Control returns to the calling program
after execution.
·
XCTL (Transfer Control): Transfers control from
one program to another at the same logical level without expecting to return.
The original program's context is discarded.
·
LINK: Invokes another program at the next
logical level and expects control to return after the called program finishes.
The original program's context is preserved.
38. Explain
the purpose of the EXEC CICS command and provide an example of its usage.
The EXEC CICS command is used to perform CICS
functions within a program, such as reading input, sending output, accessing
files, managing tasks, and more. It allows COBOL or other high-level programs
to interact with CICS services.
39. Whats
the CICS command used to access the current date and time?
Use ASKTIME to get the current time in ABSTIME format,
and FORMATTIME to convert it into readable date and time.
40. What is
the effect of including the TRANSID in the EXEC CICS RETURN command?
Including TRANSID in the EXEC CICS RETURN command
schedules a new transaction to be started after the current task ends.
EXEC
CICS RETURN TRANSID('TRN1') END-EXEC.
This ends the current task and automatically starts
transaction TRN1.
41. What is
the difference between the INTO and the SET option in the EXEC CICS RECEIVE MAP
command?
·
INTO Option: It copies map data into a
working-storage variable and requires a defined data area.
·
SET Option: It returns a pointer to the map
data, used with a pointer variable and more efficient for large maps.
42. What is
the difference between getting the system time with EIBTIME and ASKTIME
command?
·
EIBTIME: Contains the time when the task started.
It's a static value stored in the EIB (Execute Interface Block). It is used to
get the task’s start time.
·
ASKTIME: Retrieves the current system time at the
moment the command is executed. It returns time in ABSTIME format.
43. What BMS
options do you use in CICS?
Commonly used BMS (Basic Mapping Support) options in
CICS include:
·
ASKIP
– Skips the field during cursor movement.
·
PROT
– Protects the field from user input.
·
UNPROT
– Allows user input in the field.
·
FSET
– Forces Modified Data Tag (MDT) ON to send field even if untouched.
·
IC
– Places the cursor in the field.
·
NUM
– Allows numeric-only input.
·
BRT/NORM/DRK
– Controls field brightness or display intensity.
44. In CICS,
how are ENQ and DEQ used?
·
ENQ (Enqueue): Lock a resource. Used to gain exclusive
control over a resource to prevent other tasks from accessing it
simultaneously.
·
DEQ (Dequeue): Unlock resource. Used to release the
lock obtained by ENQ, making the resource available to others.
45. What is
the function of the EXEC CICS HANDLE CONDITION command?
The EXEC CICS HANDLE CONDITION command is used to
specify error-handling routines for specific CICS exceptions. It directs
program control to a label or paragraph when a specific condition (e.g.,
NOTFND, ENDDATA, PGMIDERR) occurs.
EXEC
CICS HANDLE CONDITION
NOTFND(LABEL-NOT-FOUND)
END-EXEC.
46. What
happens when the NOHANDLE option is used in a CICS command?
The NOHANDLE option tells CICS not to invoke any condition
handlers (like HANDLE CONDITION or HANDLE AID) if an error occurs. When
NOHANDLE is used, CICS suppresses automatic error handling, and the program
must check response codes explicitly.
The program must manually check EIBRESP or EIBRCODE to
handle exceptions. It prevents automatic transfer of control on errors.
47. What is
the difference between TSQ and TDQ, and when would you use each?
|
Temporary Storage Queqe (TSQ) |
Transient Data Queqe (TDQ) |
|
Records
in Temporary Storage can be read more than once |
Temporary
Data Queues can be read only once |
|
Records
in TSQ can be read randomly |
Records
in TDQ can be read only sequentially |
|
You
may update an existing item in a TSQ |
A
record in a TDQ cannot be updated |
|
TSQ
names are dynamically defined in the application program |
TDQs
name must first be defined in the DCT (Destination Control Table) |
|
TSQ
cannot be accessed in batch |
TDQ
may be used by batch application |
|
TSQ
cannot started automatically a CICS transaction |
TDQ
can started automatically a CICS transaction |
48. What
does Automatic Task Initiation mean in CICS?
Automatic Task Initiation (ATI) allows CICS to
automatically start a specific transaction when certain conditions are met,
such as when a TDQ reaches a predefined trigger level. This feature enables
automated processing without manual intervention.
49. What is
an ASRA abend, and how do you resolve it?
An ASRA abend indicates that a program check has
occurred, often due to data exceptions like division by zero or invalid data
types. To resolve it, you can:
·
Analyze the Abend: Use debugging tools to
determine the cause.
·
Check Data Validity: Ensure that the data
being processed is valid and within expected ranges.
·
Review Program Logic: Examine the code for
logical errors that could lead to the abend.
50. Describe
the CICS communication methods and their use cases.
·
TDQ (Transient Data Queue): Sequential message
passing between programs or for logging. Types: Intra- and
inter-partition.
·
TSQ (Temporary Storage Queue): Temporary data sharing
between tasks/programs.
·
LINK / XCTL: Program-to-program communication. LINK
returns control; XCTL does not.
·
SEND / RECEIVE: User interaction via
terminal screens using BMS maps.
·
MRO / ISC (Inter-region communication): Communicate across
CICS regions (same or different systems).
·
Web Services / Sockets: Integration with
external systems using HTTP, SOAP, REST, or TCP/IP.
·
51.
How Dynamic Memory Allocation is Handled in the CICS Program?
·
CICS handles dynamic memory allocation using the GETMAIN command
to allocate memory and FREEMAIN to release it.
·
52.
Explain the term Multi Region Operation.
·
Multi Region Operation (MRO) is a CICS feature that allows
multiple CICS regions to communicate and work together on the same system or
across different systems. The main purpose is to distribute workload, improve
performance, and enable modular system design.
·
53.
What exactly is CEMT?
·
CEMT (CICS Execute Master Terminal) is a CICS-supplied
transaction used to monitor and manage CICS resources at runtime. It display,
install, activate, or modify resources like programs, files, transactions,
TDQs, etc.
·
54.
The error code AEIV?
·
The CICS error code AEIV indicates an "Invalid
Request", typically caused by an incorrect parameter or an unsupported
operation in a CICS command.
1. How do
you define a CICS program in the CICS region?
To define a CICS program in the region, you use the
Program Processing Table (PPT) either statically (DFHCSDUP) or dynamically
(CEDA).
CEDA
DEFINE PROGRAM(PROGNAME)
GROUP(GROUPNAME)
LANGUAGE(COBOL)
·
PROGNAME:
Name of the program.
·
GROUP:
CICS resource group the program belongs to.
·
LANGUAGE:
Programming language (e.g., COBOL, PL/I).
2. How do
you handle errors in CICS programs? Provide a coding example.
Errors are handled using the EXEC CICS HANDLE
CONDITION command, which redirects control to a specific label or paragraph
when a specified condition occurs. For example -
EXEC
CICS
HANDLE CONDITION
NOTFND(ERROR-ROUTINE)
END-EXEC.
EXEC
CICS READ FILE('EMPFILE')
INTO(WS-EMP-DATA)
RIDFLD(EMP-ID)
END-EXEC.
...
ERROR-ROUTINE.
MOVE 'Record
not found.' TO
WS-ERROR.
EXEC CICS RETURN END-EXEC.
3. What are
CICS BMS maps and how do you define them?
CICS BMS (Basic Mapping Support) maps define screen
layouts for CICS applications. They separate screen design from application
logic, allowing for formatted, interactive displays (like maps for data entry
or menus).
How to Define BMS Maps?
·
Using BMS Macros:
o
DFHMSD – Declares the mapset.
o
DFHMDI – Defines the map (screen).
o
DFHMDF – Defines individual fields
(attributes, positions, lengths).
·
Assemble the macros to generate:
o
A
load module (used at runtime)
o
A
copybook (used in COBOL for referencing fields)
4. When
using multiple maps, how does one determine the storage in the symbolic map?
When multiple maps are used in a mapset, each map gets
its own symbolic map, and the total storage is determined by the combined size
of all symbolic maps in the mapset.
5. What are
the primary differences between PCT and FCT?
|
PCT (Program Control Table) |
FCT (File Control Table) |
|
Defines
transaction-to-program relationships |
Defines
file and dataset access for CICS programs |
|
Maps
a Transaction ID (TRANID) to the program that processes it |
Maps
a logical filename (DDNAME) to a physical dataset |
|
Used
during transaction initiation (e.g., EXEC CICS START or user input) |
Used
for file operations (e.g., READ, WRITE, DELETE) |
|
Contains:
Transaction ID, Program name to be executed and Security & scheduling
attributes. |
Contains:
Dataset name (DSNAME), File access mode (VSAM, TSQ, TDQ, etc.), Record length
& key details (for VSAM). |
6. What are
some primary transaction uses in the context of CICS?
|
Transaction |
Purpose |
|
CEMT |
Master
transaction to view, process. |
|
CEBR |
Browse
Temporary Storage Queue |
|
CECI |
Command-level
interpreter |
|
CEDF |
Debugging
tool |
|
CESF |
Sign-off |
|
CESN |
Sign-on
(security) |
7. What
effect would it have on RECEIVE MAP if we press PF and PA keys?
The RECEIVE MAP command completes, but EIBAID will
reflect the pressed key. The program must check EIBAID to decide further
processing (e.g., branching logic). If PA1 is pressed, CICS may override the
program flow (unless explicitly handled).
8. What is
the process of terminating a transaction?
In CICS, a transaction can be terminated in the
following ways:
·
Normal Termination (Explicit) –
o
Using
EXEC CICS RETURN in the application program, which passes control back to CICS.
o
Optionally,
COMMIT (SYNCPOINT) is issued to finalize updates before termination.
·
Abnormal Termination (Forced) –
o
PA1
Key – Pressing PA1 typically forces an immediate rollback and exits the
transaction.
o
Transaction
Timeout – If the transaction exceeds its defined run time limit, CICS aborts
it.
o
Program
ABEND – If the program crashes, CICS terminates the transaction with a dump (if
enabled).
·
Implicit Termination –
o
When
the last program issues RETURN without specifying a next transaction.
o
If
the program ends without a CICS command (rare, usually results in an error).
9. What are
the situations under which NEWCOPY is required?
·
After a Program Update – When a
COBOL/PL/I/Assembler program is modified and recompiled, NEWCOPY refreshes the
in-memory copy without a CICS restart.
·
First-Time Load – If a program is newly
installed and needs to be loaded into CICS for execution.
·
Abend Fix – If a program abends due to a logic error
and a corrected version is deployed.
10. Can you
have CICS code in a copybook? If yes, what happens during compilation?
Yes, you can include CICS commands in a copybook. The
copybook must be included before translation, not after. CICS code is allowed
in copybooks, and during compilation, the CICS translator processes it normally
as part of the main program.
11. What is
a two Phase commit in CICS?
A two-phase commit in CICS ensures atomicity across
multiple resources (like VSAM, DB2, MQ) by coordinating updates in two phases:
·
Prepare Phase – CICS asks all
participating systems if they're ready to commit. Each system votes
"YES" (can commit) or "NO" (must abort)
·
Commit/Abort Phase – If all vote
"YES": CICS tells all systems to permanently commit changes. If any
vote "NO": CICS forces all systems to rollback changes
12. What is
the purpose of the Program List Table?
The Program List Table (PLT) in CICS defines
initialization programs that run when:
·
CICS
starts up
·
A
CICS region shuts down
·
A
transaction is initiated for the first time
13. Which
CICS system program is responsible for handling automatic task initialization?
The CICS system program (DFHSIP) responsible for
automatic task initiation during system startup or when certain events (like
file triggers) occur. It manages initial task scheduling and region control.
14. I have
written a CICS program. What tables should I setup to run this program?
To run a CICS program, you need to define entries in
the following control tables:
·
PPT
(Program Processing Table) – Defines the program name and its attributes.
·
PCT
(Program Control Table) – Maps the transaction ID (TransID) to your program.
·
FCT
(File Control Table) (if files are used) – Defines the files
your program will access.
·
RCT
(Resource Control Table) (if DB2 tables are used) – Defines
the plan your program will access.
·
DCT
(Destination Control Table) (if TDQs are used) – Defines any
Transient Data Queues used.
15. In which
table would you make an entry for a BMS map?
A BMS map is defined in the PPT, just like application
programs, to make it available for execution in CICS.
16. What is
the option of the DFHDCT macro which makes it possible to recover logically
deleted records from an Intrapartition TDQ?
Use REUSE=YES in the DFHDCT macro to enable recovery
of logically deleted records in an Intrapartition TDQ.
17. What is
the primary function of the Sign-on Table?
The Sign-on Table (SNT) in CICS is a security control
table that:
·
Validates
user IDs and passwords during login.
·
Associates
users with security profiles or permissions.
·
Supports
resource-level security using RACF or external security managers.
18. Which is
the program which determines whether a transaction should be restarted?
The Restart Manager (DFHREST) is the CICS system
program that determines whether a transaction should be automatically restarted
after a failure.
19. Mention
the 5 fields available in the symbolic map for every 'NAMED' field in the
DFHMDI macro?
For every NAMED field defined in a DFHMDI BMS macro,
the symbolic map automatically generates these 5 standard fields:
·
fieldnameO
– Output field (data to be displayed)
·
fieldnameI
– Input field (data entered by the user)
·
fieldnameA
– Attribute byte (display/input characteristics)
·
fieldnameL
– Length of data entered
·
fieldnameF
– Modified Data Tag (MDT) flag
20. Name
three ways the Modified Data Tag can be set on?
The Modified Data Tag (MDT) in CICS BMS maps can be
set ON in three primary ways:
·
User Input: - Automatically set when the user
types into an unprotected field.
·
FSET Attribute: - Use the FSET option in the map
field to force MDT ON, even if the user doesn't type.
·
IC Attribute with Cursor: - When the cursor
is placed in a field using the IC attribute, and the user presses Enter, MDT is
set ON.
21. What is
the difference between FSET and FRSET?
In CICS BMS, FSET and FRSET are attributes used to
control field behavior in symbolic maps:
FSET (Force Set):
·
Forces
the Modified Data Tag (MDT) to be ON for a field, ensuring it is always
transmitted to the program (even if unchanged).
·
Set
via ATTRB=FSET in the DFHMDF macro or programmatically by setting the attribute
byte (fieldname+F) to X'01'.
·
Guarantees
the field is included in RECEIVE MAP.
FRSET (Field Reset):
·
Forces
the MDT to be OFF, meaning the field is not transmitted unless modified by the
user.
·
Set
via ATTRB=FRSET in DFHMDF or by setting the attribute byte to X'00'.
·
Excludes
the field from RECEIVE MAP unless explicitly edited.
22. What is
the difference between the enter key, the PF keys and the PA keys?
|
Key Type |
Purpose |
CICS Handling |
|
EnterDiscover more Application
software application SDSF IMS DB IBM Information
Management System IDCAMS IEFBR14 |
Submits
the current screen data |
Sets
EIBAID=DFHENTER |
|
PF
Keys (PF1–PF24) |
Triggers
application-specific functions |
Sets
EIBAID=DFHPF1 to DFHPF24 |
|
PA
Keys (PA1–PA3) |
Emergency/interrupt
actions |
Sets
EIBAID=DFHPA1 to DFHPA3 |
23. What do the
keywords MAPONLY and DATAONLY mean?
In CICS BMS, MAPONLY and DATAONLY are keywords used
with the SEND MAP command to control screen output:
|
Keyword |
Purpose |
Effect |
|
MAPONLY |
Sends
only the map’s static fields (labels, fixed text) |
Ignores
variable data fields; redisplays the screen layout without updating dynamic
content. |
|
DATAONLY |
Sends
only variable data fields (user-input/output fields) |
Skips
static text; updates only modifiable fields (e.g., for partial screen
refreshes). |
24. What are
the two outputs created as a result of generation of a map?
When a BMS (Basic Mapping Support) map is generated,
it produces two key outputs:
·
Physical Map (Load Module) – Stored in the CICS
load library, used by CICS to display the screen. Stored in a CICS load library
(DFHRPL).
·
Symbolic Map (Copybook) – Source code (e.g.,
COBOL/PL/I copybook) defining field names and attributes.
25. What is
the use of DSECT parameter in BMS?
The DSECT parameter in BMS is used to generate the
symbolic map only (copybook), without creating the load module. It is used when
you only need the field definitions for program logic, not for actual screen
display.
26. Can you
use OCCURS in a BMS map?
Yes, you can use the OCCURS option within a BMS map
definition to define repeated fields, essentially treating them as an array,
but each element of the array is a single map field.
27. Can you
define multiple maps in a BMS mapset?
Yes, you can define multiple maps (screens) in a
single BMS mapset. Each map is defined with its own DFHMDI macro within the
mapset's DFHMSD declaration.
28. What
does the BUFFER option in RECEIVE mean?
The BUFFER option in the RECEIVE command tells CICS to
place the entire inbound message into a specified storage area (buffer),
without mapping it to a screen layout. Typically used in non-BMS applications
or for raw data input.
29. What is
the option that is used to erase all unprotected fields during a SEND MAP
operation?
The ERASE option in the SEND MAP command is used to
clear all unprotected fields on the screen before displaying the map.
30. What is
DFHEIBLK?
DFHEIBLK (Execute Interface Block) is a CICS-provided
control structure that supplies critical runtime information to a CICS program.
It contains:
·
Task/Transaction
Data (e.g., transaction ID, terminal ID).
·
Response
Codes (e.g., EIBRESP, EIBRCODE for error handling).
·
Command-Specific
Details (e.g., length of data received)
31. If
DATAONLY option is specified in the SEND MAP command what will happen?
The DATAONLY option sends only the data, not the map
format, reducing overhead when the screen layout doesn't need to change.
32. What is
the difference between a physical BMS mapset and a logical BMS mapset?
EIB (Execute Interface Block) is a CICS-provided
control block that supplies critical runtime information to an application
program. Key Uses of EIB:
·
EIBTRNID:
Current Transaction ID (e.g., 'INQ1').
·
EIBTRMID:
Terminal ID of the user.
·
EIBRESP:
Response code after CICS commands (e.g., DFHRESP(NORMAL)).
·
EIBRCODE:
Additional error details.
·
EIBCALEN:
Length of COMMAREA (if passed between programs).
·
EIBFN:
Internal CICS function code (for debugging).
33. What
does it mean when EIBCALEN is equal to zeros?
When EIBCALEN = 0, it means no data was passed in the
COMMAREA to the program.
34. The
DFHCOMMAREA is used to pass information from one application to another. What
are some other ways that this function can be accomplished?
Besides DFHCOMMAREA, CICS programs can pass data
using:
·
Temporary Storage Queues (TSQ) – WRITEQ TS / READQ TS
for persistent or temporary data.
·
Transient Data Queues (TDQ) – Intra/Extra-partition
queues via WRITEQ TD / READQ TD.
·
Shared Storage (GETMAIN/FREEMAIN) – Allocate shared memory
with EXEC CICS GETMAIN.
·
File/DB Access – VSAM, DB2, or other
databases as intermediate storage.
·
Channel/Container (CICS TS 3.1+) – Modern alternative:
EXEC CICS PUT CONTAINER / GET CONTAINER.
35. How do
you access storage outside your CICS program?
You can access storage outside your CICS program using
the EXEC CICS ADDRESS command.
36. Before
issuing an ASKTIME command what will be the values in the EIBDATE and EIBTIME
fields if the EIB?
Before issuing an ASKTIME command, EIBDATE contains
the date when the task started and EIBTIME contains the time when the task
started.
37. What
will be the length of the eibcalen, if the transaction is used to cics first
time?
When a transaction is used for the first time (initial
execution) in CICS, the EIBCALEN (Communication Area Length) field in the EIB
will be zero (0) because no COMMAREA has been passed to the program yet.
38. How many
conditions can you include in a single HANDLE CONDITION command?
In a single HANDLE CONDITION command in CICS, you can
include up to 12 condition names to handle multiple exceptions.
39. What is
the difference between EXEC CICS HANDLE CONDTION and an EXEC CICS IGNORE
command?
|
Command |
Purpose |
Effect |
|
HANDLE
CONDITION |
Defines
custom error-handling routines for specific CICS conditions (e.g., NOTFND,
ERROR) |
Redirects
control to a labeled paragraph if the specified condition occurs |
|
IGNORE
CONDITION |
Disables
(ignores) a previously defined HANDLE CONDITION for a specific condition |
Restores
default CICS behavior (abend/return) for that condition |
40. When a
task suspends all the handle conditions via the PUSH command, how does the task
reactivate all the handle conditions?
To reactivate handle conditions after a PUSH HANDLE
command, use the POP HANDLE command. This restores the previous HANDLE
CONDITION, HANDLE AID, and HANDLE ABEND settings that were saved during the
PUSH.
41. Which is
the AID that will not be identified in the ANYKEY option of the HANDLE AID
command?
DFHCLEAR (CLEAR key) is not recognized by HANDLE AID
ANYKEY and must be explicitly handled if needed.
42. A HANDLE
CONDITION remains active until the end of the program or until another HANDLE
CONDITION command (True or False).
True
43. What is
the meaning of the SYNCPOINT command?
The SYNCPOINT command is used to commit all changes
made by a task to resources like DB2, VSAM files, and queues.
44. What is a transid and explain the system transid CEMT?
A TransID (Transaction Identifier) is a 4-character
code used to start a CICS transaction, which triggers the execution of a
specific program.
CEMT is a CICS-supplied system transaction used to
inspect, modify, and manage CICS resources dynamically.
45. Why is
it important not to execute a STOP RUN in CICS?
Executing STOP RUN in a CICS program is avoided
because it terminates the Entire Task – Unlike a structured EXEC CICS RETURN,
STOP RUN forcibly ends the CICS task, bypassing CICS cleanup routines.
46. Why
doesn’t CICS use the COBOL Open and Close statements?
COBOL OPEN and CLOSE are meant for batch processing,
not for CICS's online, multitasking environment. CICS doesn’t use COBOL
OPEN/CLOSE because it handles file access internally to support efficient,
online transaction processing.
47. How is
dynamic memory allocated within a CICS application program?
CICS allocates dynamic memory using GETMAIN and
releases it with FREEMAIN, allowing flexible storage management during task
execution.
48. What is
the command which will delete a program Loaded into the main storage using LOAD
command?
To remove a program loaded with LOAD, use the RELEASE
command — it frees the memory allocated to that program.
49. What
will happen when the resource security check has failed on the program which
has been specified in the PROGRAM option of the LOAD command?
On a security failure during LOAD, CICS raises a
PGMIDERR, and the program is not loaded into memory.
50. What is
the command that is used to delay the processing of a task for a specified time
interval or until a specified time?
DELAY is used to pause task execution for a given
duration or until a set time in CICS.
1. How will you run a
online program. ?
By using Transaction
ID, online program can run.
2. How will
you create maps
in cics ?
Two
ways.
A. BMS
MACROS.
B. SDF
TOOL (SCREEN DEFINITION FACILITY)
DFHMSD – Mapset
DFHMDI – Map
DFHMDF - Field
3. What are the types
of maps?
Two types of MAP.
1. Physical Map:
controls the screen alignment, sending and reccieving of constants and data to
and from a terminal. They are coded using BMS macros, assembled and link edited
into CICS LOAD LIBRARY. They ensure the device independence in application
programs.
2. Symbolic Map: defines
the map fields used to store the variable data referenced in COBOL program.
They are also coded BMS macros. But after assembling, they are placed in a copy
library and then copied into CICS programs using COPY statements. They ensure
device and format independence to the application program.
4. What is MDT.
Modified data tag
MDT is one bit field of the attribute
byte. The program can receive only the fields with MDT ‘1’ on RECEIVE. Effective use of MDT can reduce the data traffic drastically in
the communication line.
MDT can be SET/RESET in the following ways:
1. When
the user modifies the field, the MDT of the field is automatically set to ON.
2. CTRL=FRSET
of DFHMSD or DFHMDI will RESET the MDT to ‘OFF’ for all the fields In the
mapset or map. FSET keyword of the attribute operand definition of DFHMDF will
set the MDT to ‘ON’. It overrides the FRSET definition for the specific field.
3. Before
sending the screen, by overriding the MDT bit of attribute byte of the field
the MDT can be set to ‘on’.
5. What are the
parameters in DFHMSD
DFHMSD
(defined field hierarchy map set definition)
Mapsetname
DFHMSD TYPE=&SYSPARM/MAP/SECT,
MODE=INPUT/IN/OUT,
T10APEX=YES,
LANG=COBOL/ASM/PL,
STORAGE=AUTO,
CTRL= (FREEKB,FRSET)
1. TYPE:
If specifies the type of the map to be generated.
&SYSPROM: It will generates both
physical and symbolic map
MAP: It generates only the physical map
DSET: It will generate only symbolic map
·
Physical map is the load module of the
BMS MACROS
·
Symbolic map is the copy book generated
for the fields with field name.
2. MODE:
It specifies the type of use of map.
INPUT: It enables the map to be used for
both Input and output pupose.
IN: for input maps lik entry screens
OUT: for output maps like display
screens
3. TIOAPFX
(terminal input output area prefix): when TFOAPFX=YES then system generates a
12 byte filler in which the control information pressed by the user.
The 12 byte memory is TIOA
4. LANG:
It specifies the programing language with which we can use the map.
5. STORAGE:
When STORAGE=AUTO, is specified system allocates a separate memory for the map
set.
6. Difference between
XCTL&LINK
XCTL
is used to pass control from one program to another but doesn’t expect the
control to return back.
SYNTAX:
EXEC CICS
XCTL
PROGRAM(PROGRAM NAME)
END EXEC
LINK:
It is used to pass control from one prog. to another but the control is
expected to return back.
7. Difference
between conversation&psuedo conversation
CONVERSATION: processing
transaction is called conversation.
PSUEDO CONVERSATION: for
sending and receiving of message, we will use pseudo conversation.
8. Syntax to use maps
in cobol -cics program
COPY MAPSETNAMEI, MAPSETNAMEO
9. What is EIBCALEN
EXECUTE
INTERFACE BLOCK COMMUNICATION AREA LENGTH
If
EIBCALEN = 0
Indicates user not entered any
data
ELSE
User entered some data
SYNTAX:
IF
EIBCALEN = 0
PERFORM SEND-PARA
ELSE
PERFORM PROCESS-PARA
10. What is DFHCOMMAREA
It is the communication area
between the two programs or two tasks. COMM area is declared in the COBOL
program as follows.
SYNTAX: LINKAGE
SECTION
01 FHCOMMAREA
PIC X(100)
In every CICS program DFHCOMMAREA
is declared and the maximum data length can be 32767(32k). It is used to know
whether he user has entered data in the screen or not It stores the count of
characters entered on the screen. If EIBCALEN is ‘0’ then it indicates user has
not entered any data. ELSE User has entered data.
Note: If NO DFHCOMMAREA declared then system takes a
one byte (1B) DFHCOMMAREA.
11. DFHRESP options
WHEN DFHRESP (NORMAL) -> FILE IS FOUND
WHEN DFHRESP (NOT FOUND) -> FILE IS NOT FOUND
WHEN DFHRESP (LENERR) -> LENGTH ERROR
WHEN DFHRESP (DUPREC) -> DUPLICATE RECORD
12. How to use VSAM
file in COBOL- CICS program
Reading the records sequentially
in CICS:
EXEC CICS
START BR
FILE(FILE-NAME)
RIDFLD(POL-NUM) ->record
identification field
KEYLEN(LENTH)
END-EXEC.
EXEC CICS
READ NEXT
FILE(LOG.FILE-NAME)
RIDFLD(FIELDNAME)
END-EXEC.
13. TYPES OF CURSORS IN
CICS
1.STATIC
CURSOR POSITIONING: USING IC
2.DYNAMIC
CURSOR POSITIONING:
Dynamically to place the cursor into a desired field
we need to move ‘-1’ to its length.
MOVE ‘PLEASE ENTER CORRECT PASSWORD’ TO ERRMSG0
MOVE -1 TO PWDL
PERFORM 1600_SEND.
3.RELATIVE
CURSOR POSITIONING:
Relatively the cursor is positioned at a desired
field by specifying the relative byte position compared to the first byte.
EXEC CICS
SEND
MAP(’MAP1’)
MAP(‘MAPST1’)
CURSOR(842)
END_EXEC.
14. How will you create
COBOL+CICS+DB2 program
15. What are the
commands to execute MAP& PROGRAM
CEDA-CICS execution,
definition and administration. Command is used to define and install
mapsetof PGM.
By using CECI(CICS execution command interruption)
command is used to send map to online screen.
16. What are the types
of QUEUEs
Queues are of 2 types:
1. TSQ
(temporary storage queue)
2. TDQ
(transient data queue)
17. TSQ&TDQ
1. TSQ:
Queue records are written based on item numbers. TSQ records can be accessed
sequentially, dynamically or randomly.
2. TDQ:
records are written without item number. Records can be read only sequentially.
A TDQ record once read is deleted automatically.
18. In which QUEUE we
can implement PAGE UP&PAGE DOWN
In TSQ
Comments
Post a Comment