Skip to content

Kick the CICS


Questions Start….

1)      What are Channels and Containers? How and why are they used?


2)      Do you need any entries in any tables in CICS for Channels and Containers?

I think No..because they are referenced to storage areas and they are similar to COMMAREA.

3)      If PROGRAM-A links to PROGRAM-B, what would happen in PROGRAM-A after it links to PROGRAM-B?

Program B receives that if any via COMMAREA and after its process it returns data to calling program A via COMMAREA only.

4)      What happens when PROGRAM-A XCTL’s to PROGRAM-B and a RETURN/GO BACK is issued in PROGRAM-B?

Generally RETURN/GO BACK is issued if current program is returning to a program which is one level above current program. But when we issue XCTL  to another program it never expected to return to the calling program.

5)      How do you read a specific record from a VSAM-KSDS file in a COBOL-CICS program?

Direct reading from a KSDS

When reading from a KSDS, you can identify the record you want uniquely by specifying its full key, or you can retrieve the first (lowest key) record whose key meets certain requirements. There are two options that qualify your key value; GENERIC and GTEQ.

The GENERIC option indicates that you require a match on only a part of the key; when you specify the GENERIC option, you also must specify the KEYLENGTH option, to say how many positions of the key, starting from the left, must match. For the READ command, CICS uses only the first KEYLENGTH option characters.

The GTEQ option indicates that you want the first record whose key is “greater than or equal to” the key you have specified. You can use GTEQ with either a full or a generic key.

The opposite of the GTEQ option is the EQUAL option (the default), which means that you want only a record whose key matches exactly that portion (full or generic) of the key that you have specified.

6)      How you start/submit a job(JCL) from CICS?

we can write the jcl to a system TDQ which can be accessed by batch applications.

7)      How LINK is different from XCTL? Can we use a call in CIC program?

used to call same level programs and control will not be returned to the called program when called using xctl
call vs link
1. CALL gives a better performance over LINK. The reason being CALL executes in the same run unit of the main program, wehre as LINK runs in a separate run unit.
2. CALL can be used to transfer more than 32K between the calling and called programs.
3. CALL can transfer multiple data elements, where as LINK can transfer only one. (DFHCOMMAREA)
4. CALL can be used only with-in a single CICS region, where as LINK can be used to transfer control across regions.

8)      What are different ways of initiating a transaction with explanation?

1. By entering Transaction Id(4 bytes)
2.By Start command
3. By Return Trans Id (as in pseudo conv)
4. By Registering Tran ID in plt so that it will be automaticaly dusring CICS start
5. By ATI
6.PF PA keys as defined in PCT

9)      How START command is different from XCTL?

BY EXEC CICS XCTL is used to pass control from one
application program to another apllication program at the
same logical level. the calling(XCTLing ) program does not
expect control to be returned.

->the START command is used to start a transaction at the
specified terminal and at d specified time or
interval.optionally , data can be passed to d to-be-
initiated transaction.

A special appliaction of the START command is the scheduled
transaction initiation ( STI ) , by which certain CICS
tranaction can be initiated automatically at d scheduled
time or interval.

10)   What is ENQ and DEQ, explain with example.

11)   What is the use of Sync point in CICS?

This is more like two phase commit in DBMS.

1.       Explain any complex design that you have done and what all CICS features you have used in it ?

2.       Practical scenario where the TSQ’s are used. Explain one scenario in detail.

3.       Design considerations for TSQ.

4.       Suppose while processing the TSQ, the transaction fails, then what will happen ?

5.       Practical scenario where the start and retrieve commands are used.

6.       PCT and PPT explanation.

7.       Questions on TDQ.

8.       How Call can be used in CICS ? When do you prefer to use it ?

9.       Link and XCTL. Practical scenario where these will be used.

10.   Sync point and rollback. When do you used it. Practical scenario where the sync point can be used.

1)    What tables or process which need to be followed when you have to add a new transaction in CICS. We have some VSAM files and DB2 component also.

2)    What is TSQ and TDQ what is the usage of each. –

3)    Suppose our cics program is creating some reports , how we will print those reports, what are the different options do print reports.

4)    How do you design dead lock issues.

5)    How to resolve the ASRA abend.

6)    Various ways to pass control between CICS programs

7)    Difference between XCTL & LINK

8)    Ways to pass back control in XCTL

9)    What is Roll back & Synch point

·         How do you design dead lock issues ? Say a user is onto a CICS online screen and is performing some update to a table accessed in the backend and in the meantime there is a batch job running in parallel which is accessing the same table, results in a dead lock ?

·         If program A is calling program B and there is a TSQ being accessed in Program A, say for some reason there is some problem with the queue which results in some error, how can you ensure that Program A writes the error on the TSQ and at the same time program B runs to successful completion.

·         ASRA abend resolution.

How to monitor background tasks in CICS

How to show a user friendly message on CICS abends?

How to prevent Abend looping?

Forward recovery and backward recovery

Syncpoint merits and drawbacks

How to Pass data between different programs in CICS

Difference between TSQ and TDQ, Practical scenario when we will use them

IS it possible to issue DB2 COMMIT in CICS?

What happens to TSQs used by multiple transactions, if a transaction abends. How to handle it?

How to avoid deadlocks in CICS

A Task is generating report on transactions, what will be your considerations for it to run on a holiday? will you run it?

ASRA abend resolutions.

How to print reports in CICS

  1.  How do you place the cursor on a particular position on the screen? –

Move -1 to the length attribute of the field and use the CURSOR option.

     2.    Define the field with IC in the BMS map.

Use CURSOR(n m)??

  1. What are the two outputs created as a result of generation of a map? –

The map copybook and the load module.

  1. What is the difference between physical map and symbolic map? –

The physical map is the load module and the symbolic map is the data structure.

1.     Specify CICS transaction initiation process. (From the perspective of CICS control programs and control tables

TCP places data in TIOA and corresponding entry into TCT.

KCP acquires the transaction identifier from TIOA and verifies if it is present in PCT.

SCP acquires Storage in Task Control Area (TCA), in which KCP prepares control data for the task.

KCP then loads the application programs mentioned in PCT by looking for it in PPT.

If resident – real storage memory location is not present in the PPT the control is passed to PCP that loads the application programs from the physical storage location address given in PPT. The control is then passed to the application program (LOAD module).

  1. 2.      What is the EIB parameter and the CICS command used to implement Pseudo-Conversational technique using single PCT – Single PPT entry?

EIBCALEN – To check if COMMAREA has been passed in return command.






  1. 3.      Mention the 5 fields available in the symbolic map for every ‘NAMED’ field in the DFHMDI macro?   Give a brief description of these fields.

FIELD+L           – Return the length of text entered (or for dynamic cursor positioning)

FIELD+F           – Returns X(80) if data entered but erased.

FIELD+A           – Used for attributes reading and setting

FIELD+I            – Used for reading the text entered while receiving the map.

FIELD+O          – Used for sending information on  to the MAP.

Expand the Attribute field

  1. 4.     How do you initiate another transaction? The transaction initiated should be in a position to retrieve

information pertaining to which transaction has initiated it and from which terminal. (Code the

required CICS commands)
















  1. 5.      What is the CICS command that gives the length of TWA area?




  1. 6.      How do you set the MDT option to ‘ON’ status,  even if data is not entered?

Mention FSET option in DFHMDF or set it dynamically in the program using FIELD+A attribute field.

  1. 7.      What is the most common way of building queue-id of a TSQ? (Name the constituents of the Queue ID).



  1. 8.      What CICS command do you need to obtain the user logon-id?

You must code EXEC CICS ASSIGN with the OPERID option.


  1. 9.     Explain the means of supporting pseudo conversation programming. (E.g. Storing and restoring of states,control flow, error handling)

When we send a map using SEND MAP command.  Immediately we release the program by using EXEC CICS RETURN command. In this  command we  mention  the  TRANSACTION  ID  which  is to  be executed  after receiving  the  map.   In  this  command  we  also  specify the  data  that  should  be  stored  in COMMUNICATION  AREA  for later  use.  When this command is executed the corresponding program is released from  the  memory. After  receiving  the  response  from  the terminal  the  program  is again loaded  and  this time  the data  which  we stored in  communication  area will  be  copied  into  the  working  storage  section.   And  the  map  will be  received  with  RECEIVE MAP  command. The  variable  EIBCALEN  in  EIB  holds  the  length  of  communication area.   In  procedure  division  we  checks  the value  of  EIBCALEN If  it  is  zero,  we  first   send  the  map  followed  by   RETURN command.  Otherwise,  that is  if EIBCALEN is  not  zero,  we  know that  this  transaction  is  not  running first  time   and  we  receive the  map  by using  RECEIVE MAP  command.

  1. 10.   How can you start a CICS transaction other than by keying the Transaction ID at the terminal?

By coding an EXEC CICS START in the application program

1.   By coding the trans id and a trigger level on the DCT table

2.   By coding the trans id in the EXEC CICS RETURN command

3.   By associating an attention key with the Program Control Table

4.   By embedding the TRANSID in the first four positions of a screen sent to the terminal.

5.  By using the Program List Table – The Program List Table records the set of applications programs that will be executed automatically at CICS start-up time.

  1. 11.   What are the differences between and EXEC CICS XCTL and an EXEC CICS START command?

The XCTL command transfer control to another application (having the same Transaction ID), while the START command initiates a new transaction ID (therefore a new task number). The XCTL continues task on the same terminal. START can initiate a task on another terminal.


  1. 12.  What is a resident program?

A program or map loaded into the CICS nucleus so that it is kept permanently in main storage and not deleted when CICS goes “Short On Storage”.

  1. 13.  What is some of the information available in the EIB area?

I.          The cursor position in the map

II.          Transaction ID

III.         Terminal ID

IV.        Task Number

V.         Length of  communication area

VI.        Current date and time

VII.       Attention identifier

  1. 14.   What are the 4 ways 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:

1. Handle Condition Command: It is used to transfer control to the procedure label specified if   the

exceptional   condition specified  occurs.

2. 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.

3. 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   execution  of  this  command.

4. 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.

Handle condition:

Invalid handling of  CICS  error condition within the program causing the looping.  Here is one example, most program have EXEC CICS HANDLE CONDTION ERROR(label) or  EXEC  CICS HANDLE ABEND LABEL(label) to  trap  any  error condition or  abend.  This  type  of  coding  is usually acceptable if  they handle  the error / abend correctly in  their  handling paragraph.   However,  the  program  often  causes another error or abend  within  the handling routine.  In that case, looping or sos will occur.  I strong recommend that  the   following statement should  be included in  their  ERROR handling paragraph.

EXEC CICS HANDLE CONDTION ERROR END-EXEC. It means that from  now on, CICS will handle all the errors and will not go back to error handling routine .For HANDLE ABEND, code EXEC CICS HANDLE ABEND CANCEL instead. Please check the application program reference manual for further explanation of these two commands. Besides, not  only these two HANDLE will cause the program, other  type of error handle might cause loop too.   So  code  the HANDLE command carefully.  It  is  a good program practice to deactivate  the  error  handling  by  EXEC  CICS  HANDLE  CONDITION condition END-EXEC. Once you know that the program won’t need it anymore.


  1. 15.  How many conditions can you include in a single HANDLE CONDITION command?

No more than 16 in a single handle condition. If you need more, then you must code another HANDLE CONDITION command.

  1. 16.  What is the EXEC CICS HANDLE ABEND?

It allows the establishing of an exit so cleanup processing can be done in the event of abnormal task termination.

  1. 17.  What is the difference between EXEC CICS HANDLE CONDTION and an EXEC CICS IGNORE command?

A HANDLE CONDITION command creates a “go-to” environment. An IGNORE command does not create a go-to environment; instead, it gives control back to the next sequential instruction following the command causing the condition. They are opposites.

  1. 18.    What happens when a CICS command contains the NOHANDLE option?

No action is going to be taken for any exceptional conditional occurring during the execution of this command. The abnormal condition that occurred will be ignored even if an EXEC CICS HANDLE condition exist. It has the same effect as the EXEC CICS IGNORE condition except that it will not cancel the previous HANDLE CONDITION for any other command.


  1. 19.   What is MDT?

MDT  (  Modified  Data  Tag  )  is  one  bit  of  the  attribute  character.  If  it  is  off ( 0 ), it  indicates  that this  field  has  not  been  modified  by  the  terminal  operator.  If  it   is on  ( 1 ),  it  indicates  that  this field has  been modified  by  the  operator.  Only  when MDT  is  on,  will the  data  of  the  field  be sent  by  the  terminal  hardware to  the  host computer ( i.e.,  to  the  application  program,  in  end ). An  effective  use  of  MDT    drastically   reduces the  amount  of   data   traffic  in  the communication  line,  thereby   improving performance  significantly.   Therefore, BMS maps  and   CICS   application programs should  be developed based  on   careful considerations  for  MDT.


  1. 20.  What are the three ways available for a program to position the cursor on the screen?

I. Static positioning. Code the insert cursor (IC) in the DFHMDF BMS macro.

II. Relative positioning. Code the CURSOR option with a value relative to zero(position 1,1 is zero) .

III.Symbolic positioning. Move high values or -1 to the field length in the symbolic map(and code CURSOR

on the SEND command).

  1. 21.  Name three ways the Modified Data Tag can be set on?

The Modified Data Tag can be set on:

1. When the user enters data into the field.

2. When the application program moves DFHBMFSE to the attribute character.

3. By defining it in the BMS macro definition.


  1. 22.  Explain the basic difference between Intra partition TDQ and Extra partition TDQ.

INTRA  PARTITION  TD  QUEUEs  It is a  group of sequential records which are  produced by the same  and / or  different transactions within a CICS region.   These   Qs   are   stored   in    only    one  physical   file  (  VSAM  ) in  a  CICS  region,   which  is   prepared   by  the  system  programmer.  Once  a  record   is   read   from  a  queue,  the  record  will  be logically  removed  from   the  queue;   that  is  the record  cannot  be  read  again.          EXTRA  PARTITION   TD  QUEUEs  It  is  a   group  of   sequential   records  which   interfaces   between       the  transactions   of   the  CICS  region  and  the  systems outside  of  CICS region.  Each  of   these   TDQs    is   a   separate  physical  file,  and  it  may be  on  the  disk,  tape,  printer  or  plotter.


  1. 23.  What are the differences between Temporary Storage Queue (TSQ) and Transient Data Queue (TDQ).?

Temporary Storage Queue names are dynamically defined in the application program, while TDQs must first be defined in the DCT (Destination Control Table). When a TDQ contains certain amount of records (Trigger level), a CICS transaction can be started automatically. This does not happen when using a TSQ. TDQ(extra partition) may be used by batch application; TSQ cannot be accessed in batch. The Transient Data Queue is actually a QSAM file. You may update an existing item in a TSQ. A record in a TDQ cannot be updated. Records in TSQ can be read randomly. The TDQ can be read only sequentially. Records in Temporary Storage can be read more than once, while records stored in Temporary Data Queues cannot. With TDQs it is “one read” only.


  1. 24.   What is the difference between getting the system time with EIBTIME and ASKTIME command?

The  ASKTIME  command  is  used  to  request  the  current  date  and  time. Whereas,  the  EIBTIME field   have   the   value  at  the  task  initiation  time.

  1. 25.   What does the following transactions do?

         CEDF : CICS-supplied  Execution  Diagnostic  Facility  transaction.  It  provides interactive  program

execution  and  debugging  functions  of  a  CICS programs.

CEMT : CICS-supplied  Extended  Master  Terminal  transaction.  It  displays  or  manipulates CICS

control environment  interactively.

CEBR : CICS-supplied  Temporary  Storage  Browse  transaction.  It  displays  the  content of

Temporary Storage  Queue ( TSQ ).

CECI :  CICS-supplied  Command  Interpreter  transaction.  It  verifies  the  syntax  of  a CICS  command

and  executes  the  command.

  1. 26.  The DFHCOMMAREA is used to pass information from one application to another. What are some other ways that this function can be accomplished?

You can also pass information in the following ways.

– By using a temporary storage queue

– By using an intrapartition TDQ

– By using the Task Work Area

– By using TCTUA

– Through a file

  1. 27.   What is 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.

  1. 28.   Are sequential files supported by CICS?

Yes, but not as part of the File Control Program. They are supported as extra partition transient data files.


  1. 29.   What is the meaning of the SYNCPOINT command?

SYNCPOINT without the ROLLBACK option makes all updates to protected resources permanent, with the ROLLBACK option it reverses all updates.

  1. 30.  What do the keywords MAPONLY and DATAONLY mean?

MAPONLY is a SEND MAP operand that sends only fields with initial values to the screen. DATAONLY is the SEND MAP operand that specifies only data from the map area should be displayed.

  1. 31.   Name and explain some common CICS abend codes?

Any AEI_ indicates an execute interface program problem – the abending program encountered an exceptional condition that was not anticipated by the coding.

APCT – the program could not be found or is disabled.

ASRA – most common CICS abend, indicating a program check, identified by a one-byte code in the     Program Status Word in the dump.

AKCP – the task was cancelled; it was suspended for a period longer than the transaction’s defined deadlock timeout period.

AKCT – The task was cancelled because it was waiting too long for terminal input.

  1. 32.   How do you delete Item 3 in a five-item TSQ?

You can’t–at least not directly. Options, none of them good, include:

I.    adding a logical-delete flag to the contents of each item;

II.    moving item 4 to 3 and 5 to 4 and initializing item 5, all thru rewrites; this is a variant on 1;

III.   creating a new ‘copy’ TSQ that excludes the unwanted item, killing the old TSQ (deleteq ts), writing the new TSQ with the original name from the new TSQ, and then deleting the ‘copy’ TSQ. This way, you will get an accurate report from NUMITEMS.

  1. 33.   Why is it important not to execute  a STOP RUN in CICS ?

Stop run will come out from the CICS region.

  1. 34.  Why must all CICS programs have a Linkage Section ?

To pass parameters from appl. Program to CICS.


  1. 35.  Why doesn’t CICS use the Cobol  Open and Close statements ?



  1. 36.  What is the use of DSECT parameter in BMS?

Is the parameter to generate a symbolic map.


  1. 37.  How do you make your BMS maps case sensitive?

Use ASIS???

  1. 38.  How is the storage determined in the symbolic map, if you have multiple maps?

Storage for maps redefine the first. This means largest map has to be the first.


  1. 39.  What is trigger level in the context of TDQs?

For intrapartition TDQs specify the # records at which ATI happens. not applicable for extra partition TDQs.

  1. 40.   How do you fire a batch job from a CICS transaction?

Define an extrapartition TDQ as an internal reader and write the JCL to it. Terminate the JCL with /*EOF.

  1. 41.  Name some important fields in the EIB block?


  1. 42.  When an XCTL is done, does the tranid change? Is a new task created? Does it cause an implicit SYNCPOINT to be issued?

No, No, Yes.

  1. 43.  Can you have CICS code in a copybook?  If yes, what happens during compilation?

Yes. Needs to be preprocessed.


  1. 44.   How would you resolve an ASRA abend?

In COBOL II start with CEBR, and get the offset/instruction

  1. 45.   A CICS program ABENDS with an ASRA ABEND code. What is its meaning?

A) A link was issued to a program whose name does not exist in the PPT (Program Processing Table).

B) A program attempted to use a map that is not defined in the PCT (Program Control Table).

C)A security violation has occurred. The operator is not defined with the proper authority in the SNT

(Sign-on Table) to use a particular file

D) A program interrupt (0C0 or 0C1 or 0C2 or …) has occurred in a CICS program.

E)  An I/O error has occurred when attempting to use a VSAM file from a CICS program

  1. 46.  The error code AEIV?

This is the error code for length, if length of the source data is more than the receiving field, this error will occur.

  1. 47.  What is a two Phase commit in CICS?

This occurs when a programmer Issues a Exec CICS Syncpoint command. this is called two phase because CICS will first commit changes to the resources under its control like VSAM files. and the DB2 changes are committed. Usually CICS signals Db2 to complete the next phase and release all the locks.

  1. 48.   What is 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.

  1. 49.   What is the difference between CICS Program Control Table (PCT) and CICS Processing Program Table (PPT) ?

PCT contains a list of valid transaction ID. Each transaction ID is paired with the name of the program ,CICS will load and execute when the transaction is invoked. On the other hand, PPT indicates each program’s location which pertains to a storage address if the program has already been loaded or a disk location if the program hasn’t been loaded. PPT will also be used to determine whether it will load a new copy of the program when the transaction is invoked.

1) How transactions get initiated on CICS? Talk about different tables

2) Concepts of GETMAIN and FREEMAIN and its imporatnce in CICS

3) Usage of TDQ and TSQ and its imporatnce in CICS

4) Difference between LINK & XCTL

5) Different ways of transferring a data from CICS.



7) How to close files in CICS region

8) How to find if a tran / prog is existing in a CICS region

9) CICS Errors like ASRA, ASRB and how you will rectify these errors

Ans: CICS issues an ASRA abend code when it detects that a program check has occurred within a transaction.

CICS is notified when an MVS abend occurs, and in turn issues an ASRB abend code for the transaction.

1) Different ways of initaitaing a transaction in CICS

ans; 4 digit Tran id on the terminal

using TDQ(ATI) and tsq

2) TDQ’s and TSQ’s and its imporatnce in CICS

Ans: (1) In Temporary Storage Queues Data is read randomly,

While in Transient Data Queues data must be read

sequentially. (2) In a TSQ data can be read any number of

times as it remains in the queue until the entire Queue is

deleted. In TDQ data item can be read once only. To reuse

the TDQ it must be closed and reopened. (3) Data can be

changed in TSQ, but not in TDQ. (4) TSQ can be written to

Auxiliary or Main Storage, while TDQ is written to Disk.

Temporary storage is a holding place, while Transient data

Leave a Comment

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: