What is CICS?
Customer Information Control System (CICS) is a Database/Data control system which is used in online applications from IBM. It manages its own memory space. CICS manages the sharing of resources, the integrity of data and prioritization of execution, with fast response. CICS authorizes users, allocates resources (real storage and cycles), and passes on database requests by the application to the appropriate database manager (such as DB2).
What is mainframe?
Mainframe is a big computing machine which handles thousands of users across the globe. Mainframe applications written in COBOL, CICS, FORTRAN, C, Java, PL/1 and more runs on this machine.
Can you define CICS task?
A CICS task basically a one-time execution of a certain CICS transaction. This process starts when the key is entered into the transaction, and the enter key is pressed. The execution process continues till the program returns the control back to CICS.
Can you explain CICS Transaction Gateway?
IBM CICS Transaction Gateway is a connector for enterprise modernization of CICS assets. It provides secure access to CICS from Java, Servlet,.Microsoft,NET Framework,C,C++ and COBOL applications etc. CICS Transaction Gateway for z/OS is part of the CICS family of products that includes; CICS Transaction Server, CICS Tools, CICS explore.
What is EIB?
EIB (Execute Interface Block): One EIB is attached to each and every task and this stays with the task till its execution. CICS automatically provides some system-related information to each task in a form of EXEC Interface Block (EIB), which is unique to the CICS command level. We can use all the fields of EIB in our application programs right away.
How VSAM files are Read in CICS pgms?
By using, File Control Commands. Random, Sequential, forward and backward.
Can you explain primary aspect of CICS?
CICS basically deals with the execution as well as development of online applications. It establishes a communication channel through the terminal and facilitates the receiving as well as sending of data that is formatted. One of the primary aspects of CICS is the accessibility of database as well as the files that they contain.
What are the CICS Tables?
- PPT –Program processing table
- PCT-Program Control table
- FCT-File Control table
- TST-Temporary Storage Table
- DCT-Destination Control Table
- RCT-Resource Control Table
- PLT-Program List Table
- SNT-Sign on Table
Can you define PPT and what are its uses?
Program Processing Table – This basically consists of a list that has all the names of the programs in it along with maps. Furthermore, it tells us whether the version that is absolutely recent as available as a program in CICS or a fresh copy of the program is supposed to be loaded.
What is the difference between PCT and FCT?
PCT (Program Control Table) is a complete list of transaction identifiers that are paired to respective corresponding programs.
FCT (File Control Table) is a complete list of all the files that have been used by CICS along with their status and record length.
What is the use of DCT?
DCT Stands for Destination Control Table. It is used to define TDQs.
What is the use of the Program List Table?
The Program List Table records the set of applications programs that will be executed automatically at CICS start-up time.
What is the main function of the Sign-on Table?
Register security information of all programs.
What is the CICS LOAD command?
The LOAD command retrieves an object program from disk and loads it into main storage – it’s primarily used for a constant table that will be available system-wide.
Can you define CEMT?
CEMT basically refers to Master Terminal Transaction. It happens to be an ID for system transaction and inquires about the status. Furthermore, it changes the status of the resources.
Can you define BMS?
BMS stands for Basic Map Support. It allows you to code assembler level programs to define screens.
Can you define MDT?
MDT stands for Modified Data Tag. If the modification of the field has to be done on the screen, then MDT acts as a bit of an attribute byte. MDT basically comes into play during an input operation.
Can you define COMMAREA?
COMMAREA is commonly termed as a communication area as it happens to be for temporary storage area. This is basically used as a passing medium for data amongst multiple programs that are loaded by a set of transactions or a particular transaction.
Can you define Transid?
Transid basically stands for transaction identifier. In order to invoke a task of CICS, this character code consisting of four letters will be used.
Can you define Mapset?
Mapset is a collection of maps which are linked edited together to form a load module.It should have a PPT entry. It can have names from 1 to 7 chars.
Can you define AICA ABEND?
AICA ABEND is just a Runaway Task that is executed at a later stage.
Can you define attribute byte?
An attribute byte is basically used in CICS to define a particular transmission field or display. It basically contributes to the output field of the program.
What are the attribute values of Skipper and Stopper fields?
For Skipper field, use ASKIP and for stopper field use PROT.
Which commend used for terminating a browser operation?
How is dynamic memory allocated within a CICS application Program?
Can you explain CICS translator?
The CICS translator converts the EXEC CICS commands into call statements for a specific programming language.
Can you explain EXEC CICS HANDLE CONDITION command?
To specify the paragraph or program label to which the control is to be passed if the “handle condition” occurs.
Can you explain DFHMDF BMS macro?
The DFHMDF macro defines fields, literal, and characteristics of a field.
Can you use OCCURS in BMS Map?
How to DSECT parameter is used in BMS?
DSECT parameter is basically used in BMS in order to give shape to a symbolic map.
Can you explain ENQ and DEQ used in CICS?
ENQ and DEQ are parts of task control commands that are used in making a resource serially recyclable.
What is the use of TDQ and TSQ?
There are Temporary data stores.
What is the difference between SEND MAP DATAONLY and SEND MAP MAPONLY?
SEND MAP DATAONLY :Through this, the data is sent without the layout. It is used in order to refresh the data that comes to the screen.
SEND MAP MAPONLY :Through this, only the map is sent and not the data. Whenever we are in the process of sending menu screens, the data is never sent.
What is the difference between pseudo-conversational and conversational?
Pseudo-conversational will start a new task for each input. By coding a CICS RETURN command specifying ‘TRANSID (itself).
Conversational will have an active task during the duration of the data entry.
Can you explain Multitasking and Multithreading?
Multitasking is the feature supported by the operating system to execute more than one task simultaneously.
Multithreading is the system environment where the tasks are sharing the same programs load module under the multitasking environment. It is a subset of multitasking since it concerns tasks which use the same program.
What are the databases that CICS can access?
Can you explain DFHEIBLK?
DFHEIBLK is Execute Interface Block. It is placed in the linkage section automatically by CICS translator program. It must be the first entry in linkage section. CICS places values prior to giving control to the program and we can find almost any information about our transaction.
Can you define temporary storage?
Temporary storage is either main or auxiliary storage that allows the program to save data between task invocations.
Can you explain communication area?
An area used to transfer data between different programs or between subsequent executions of the same program. Needs to be defined in the Linkage Section.
Can you explain common systems area?
The common systems area is the major CICS control block that contains system information, including pointers to most other CICS control blocks. The CSA points to all members of STATIC storage.
What is a logical message in CICS?
A logical message is a single unit of output created by SEND TEXT or SEND MAP Commands.
How to handle exceptional conditions in CICS?
An abnormal situation during execution of a CICS command is called an exceptional condition”. There are various ways to handle these exception conditions:
Handle Condition Command: It is used to transfer control to the procedure label specified if the exceptional condition specified occurs.
Ignore Condition Command: It causes no action to be taken if the condition specified occurs in the program. That is control will be returned to the next instruction following the command which encountered the exceptional condition.
No Handle Option: This option can be specified in any CICS command and it will cause no action to be taken for any exceptional condition occurring during xecution of this command.
RESP Option: This option can be specified in any CICS command. If the RESP option is specified in a command, CICS places a response code at a completion of the command. The application program can check this code, then proceed to the next processing.
What are the CICS commands available for program control?
The following commands are available for the Program Control services:
LINK: To pass control to another program at the lower level, expecting to be returned.
XCTL: To pass control to another program at the same level, not expecting to be returned.
RETURN: To return to the next higher-level program or CICS.
LOAD: To load a program.
RELEASE: To release a program.
What is the MASSINSERT option?
MASSINSERT is a WRITE option that modifies normal VSAM split processing, leaving free space after the inserted record, so subsequent records can be inserted without splits. It is ended by an UNLOCK command.
Can you explain differences between Temporary Storage Queue (TSQ) and Transient Data Queue (TDQ)?
Temporary Storage Queqe (TSQ):
- Records in Temporary Storage can be read more than once.
- Records in TSQ can be read randomly.
- You may update an existing item in a TSQ.
- These names are dynamically defined in the application program.
- It cannot be accessed in batch.
- It cannot started automatically a CICS transaction.
Transient Data Queqe (TDQ):
- Temporary Data Queues can be read only once.
- Records in TDQ can be read only sequentially.
- A record in a TDQ cannot be updated.
- TDQs name must first be defined in the DCT (Destination Control Table).
- It may be used by batch application.
- It can start automatically a CICS transaction.
What is program reentrance?
A program is considered reentrant if more than one task can execute the code without interfering with the other tasks execution.
Here are some scenario-based CICS interview questions along with their answers:
How would you handle a situation where a CICS program encounters an error during execution?
In CICS, you can handle errors using the HANDLE CONDITION command. When an error occurs, you can define a condition handler routine to execute specific error handling logic. The condition handler routine can perform actions such as displaying error messages, writing error logs, or initiating a recovery process.
Suppose you need to pass data from one CICS program to another. How would you accomplish this?
Data can be passed between CICS programs using COMMAREA (communication area). The COMMAREA is a common storage area defined in the Linkage Section of both the calling and called programs. The calling program stores data in the COMMAREA, and the called program accesses it using the same COMMAREA structure.
How would you handle a situation where a CICS program needs to update multiple files, and the updates should be performed atomically?
CICS provides a feature called Resource Recovery (RRS) for atomic transaction processing. By defining a logical unit of work (LUW) using the START command, you can perform updates to multiple files within a single unit of work. If any update fails, all the updates are rolled back, ensuring data integrity.
How can you ensure that multiple users accessing the same data in a CICS program do not encounter conflicts?
CICS provides record-level locking mechanisms to handle data conflicts. By using commands like ENQ and DEQ (Enqueue and Dequeue), you can acquire and release locks on data resources. This ensures that only one user can update a specific record at a time, preventing conflicts.
Suppose you have a long-running CICS program, and you want to display a progress indicator to the user. How would you achieve this?
In CICS, you can use the ASKTIME command to retrieve the current time and calculate the elapsed time at specific points in the program. By displaying the elapsed time periodically, you can create a progress indicator to keep the user informed about the program’s progress.
How would you handle a situation where a CICS program needs to access VSAM files?
To access VSAM files in CICS, you need to define the VSAM files in the CICS system definition (CSD) file. The VSAM file definitions include information about the file organization, access methods, and file attributes. Once defined, the VSAM files can be accessed using appropriate CICS commands like READ, WRITE, and BROWSE.
How can you invoke a CICS program from a batch COBOL program?
You can invoke a CICS program from a batch COBOL program using the EXEC CICS LINK command. The LINK command transfers control from the batch program to the CICS program. To pass data between the programs, you can use the COMMAREA or the CHANNEL communication methods.
Suppose you need to retrieve a set of records from a VSAM file in a CICS program based on a specific condition. How would you accomplish this efficiently?
In CICS, you can use the STARTBR command to initiate a browse operation on a VSAM file. By specifying a search argument, you can position the file cursor at the desired starting point. Then, you can use the READNEXT command to sequentially retrieve records that match the condition until the desired set of records is obtained.