Friday, September 21, 2007



3/1/00 48 questions and a tentative answer key for a Tech Test for CICS/COBOL Programmers.

1. Which of the following does multithreading allow?
A. several transactions that require the same program to use one copy of the program. B. many tasks to be allocated to the terminal. C. an audit trail of all files records from all files updated by a particular application

2. Under CICS, multitasking achieved by what method?
A. virtual paging. B. task switching. C. priority numbering, D. pseudo conversational

3. What are programs that are reusable to each task and restarted by each task said to be?
A. Command-Level. B. Transaction Dependent. C. Prioritized. D. Quasi-Reentrant.

4. What three control programs execute in a task?
A. File Control/Temp Storage Control/Trace Control. B. Task Control/Interval Control/BMS Control. C. Terminal Control/Task Control/Program Control. D. Journal Control/Dump Control/Storage Control

5. Which are the correct ways to initiate CICS tasks?
A. Automatic Task Initiation/Exec CICS Start. B. CALL Statement/Receivable Map/Send Map. C. Permanent Transaction ID/Temporary Transaction ID. D. PA Key/XCTL Statement/Interval Control Transaction ID

6. A CICS Cobol program must first be ____________ before compiled.
A. linked to CICS tables. B. new copied. C. loaded to CICS object table. D. translated.

7. Online files must have an entry in the:
A. resource control table. B. vsam master catalog. C. file control table. D. file initialization table.

8. For data fields that should not be entered or cleared you can use what characteristic?
A. Unprotected. B. Normal. C. Initial Value. D. Autoskip.

9. The cursor can be controlled by using a special one byte field called:
A. stopper field. B. jump field. C. shift field. D. tag field.

10. Name the types of maps used in CICS:
A. BMS Map/Mapset. B. Offline Map/Online Map. C. Physical Map/Symbolic map. D. Symbolic Map/Temp Map.

11. BMS uses _______________ to load the appropriate physical map into main storage.
A. load library. B. program control. C. mapset. D. temp storage.

12. With BMS, two (2) major application benefits are given to the programmer. They are:
A. Physical Map/Assembler Macro. B. Symbolic Maps/Mapsets. C. Device and Data independence. D. Mapsets/Coding Rules.

13. Which answer describes a rule for coding a BMS Macro?
A. Label is from one (1) to seven (7) characters long with the first character being alphabetic. B. Getmain command should be coded first. C. Op-code is separated from the label by an asterisk. D. Operands start in column 20 separated by commas.

14. The second BMS macro (OP Code DFHMDI) has which function?
A. Specifies length of the field. B. Defines a field with a map and its position. C. States purpose of field - Input, Output or both. D. Contains size parameters of Map.

15. If the program uses other keys besides "enter" to control logic, a copy of ___________ should be used in working storage of program.
A. ebaid. B. dfhaid. C. dfhbmsca. D. dfheivar.

16. Which two entries are usually found in the linkage section?
A. Execute Interface Block/Transaction Work Area. B. Symbolic Maps/DFATTRBS. C. DFHEIV11 / Communication Area. D. Dfhcommarea/Execute Interfaced Block.

Tentative answer key:

1. A 2. D 3. D 4. C 5. D 6. D 7. C 8. D 9, A 10. C 11. B 12. C 13. A 14. D 15. B 16. D.

17. Which of the following fields will be found with the execute interface block?
A. Attr-prot/Attr-unprot/Attr-Prot-askip. B. Eibtranid/Eibtramid/Eitbaid/. C. Eibposn/Eibmapnm/Eibfilnm. D. Dfheiv0/Dfheiv99/Dfhnull.

18. When coding linkage pointers, what is it important to ensure?
A. that Symbolic storage is never over 4096K. B. that the structure is packed decimal. C. that the size pointer is equal to the symbolic map size. D. that each pointer appears in the same sequence as the 01 level entry it refers to.

19. Which of the following CICS Tables utilizes trans IDs?

20. Which of the following terminates a task in true pseudo-conversational fashion?
A. Erase. B. Suspend. C. End-Exec. D. Return.

21. Which of the following is acquired for a program before it executes a task?
A. Transaction Word Area. B. Dfhcommarea. C. Communication Area. D. Map Area.

22. What does the Handle Aid command do?
A. It specifies terminal keys and/or other attention identifiers with corresponding routines for execution. B. It automatically tries to correct error storage abends. C. It identifies status codes on file reads to determine error messages. D. It sets all PF-keys to ANSI standards where pre-processing proceeds to generate logic for routines necessary.

23. Which of the following best describes the Handle condition?
A. method of detecting an error condition and then branching to logic in a program to handle the error. B. used to determine whether to release resources and save starting point. C. automatically determines that an inputted field is to be updated. D. terminates session based upon stated return-codes.

24. Which of the following is only true of the fields with modified data tag "On"?
A. They can be modified. B. They are made available for upgrade, regardless of map name and fset usage. C. They will be transferred to the symbolic map on a receive command. D. They may be used on a send command.

25. Which of the following describes a way of setting the Modified Data Tag (MDT) on?
A. Attributes may be changed by the programmer to include the fset attribute. B. Attributes can be set to fset via passing them to call program "DFHFSET" prior to sending map. C. Specify FSET as one of the attributes when coding the BMS macro map definition. D. Moving fields necessary to "Fset" type symbolic map. E. Either a or c.

26. Why are maps grouped into mapsets?
A. to load all related maps into main storage for quick retrieval. B. to document maps within a process or application. C. to identify all application maps in the order in which they will appear. D. to allow map-names to be duplicated in different applications

27. Debug or debug translation options are utilized by what facility?
A. Time Sharing Option (TSO). B. Linkage Editor. C. Information Efficiency Facility (IEF). D. Execute Diagnostic Facility (EDF).

28. What action will the translation option "Seq" cause?
A. sequencing the source statements. B. flagging all statements that are not in sequence. C. The priority order of terminals will be the function of resource utilization. D. Telling CICS that the program will re-sequence map execution in order of program usage, not mapset order.

29. What type of abend is issued by the system if a receive map is executed when no map has been displayed?
A. Record not found. B. Map not found/Map failure. C. Duplicate record. D. Invalid attention identifier used. E. Initialization Queue error condition.

30. When the dataonly operand on sending a map is used, which item below would be left out of the SEND command?
A. Map. B. Erase. C. Delete. D. Set-on. E. Cursor.

31. What is the purpose of issuing eraseup?
A. to erase unchanged user entered fields and set modified data tags to "on". B. to set the values of all non-protected fields to null. C. to automatically erase all successfully updated fields and set modified data tags and fset to "off". D. to erase all updated fields and reset map prior to change.

32. Which of the following is true about online files?
A. Definition of files resides in the File Control Table which determines what action are allowed. B. Such files are used by many transactions at different times. C. Files that are needed by all applications may be opened when CICS is initialized and closed when CICS is terminated. D. Programs that open and close online files require special CICS macros. E. All of the above.

Tentative answer key:
17. C 18, D 19. B 20. D 21. B 22. A 23, A 24. C 25. E 26. A 27. D 28 D? 29. B 30. B 31. C 32.

33. Which of the following are uses of the Getmain command?
A. adding a record to the file. B. writing out a journal record. C. obtaining new temp storage. D. manipulating fields defined in the Linking Area. E. all of the above

34. Which of the following is the correct syntax for reading a record from a temporary storage queue?
A. Read TSQ. B. ReadTSQ. C. ReadQue TS. D. ReadQ TS.

35. The readnext command is performed in which case?
A. sequential read/update. B. Vsam ESDS file access. C. Dynamic searches. D. After a browse is started.

36. On which type of file would you use readprev?
A. Vsam. B. Qsam. C. IMS. D. Bdam.

37. Which of the following are the two (2) commands needed to release exclusive control from a record or block?
A. Freemain/Erase. B. Delete/syncpoint. C. Unlock/Rewrite. D. Rollback/Release. E. Return/Suspend.

38. Which of the following is a function of syncpoint?
A. to clear out buffers and temp storage. B. to clear out buffers and physically write records to file. C. to reset all Key-Sequence files to current key in use at syncpoint declare. D. to backout all transactions from buffers upon no update decision.

39. Which of the following best defines the action of a suspend command?
A. takes a current task out of service and places it in the Wait queue. B. cancels a transaction dump of transient storage data. C. deactivates the debugging activities in process. D. cancels and restarts program execution.

40. Which of the following are the four basic areas affected by CICS commands?
A. Terminal I-O/Temporary Storage/File Control/Program Control. B. CEMT/Resource Control/Task Control/Terminal I-O. C. Process Control/Program Control/Address Pointers/BMS. D. Suspend/Getmain/Reads/Writes

41. The release command will delete from main storage any mapset table and program previously obtained through which of the following?
A. XCTL. B. Link. C. Return. D. Load.

42. The XCTL command transfers control from one program to another at the same:
A. storage address. B. logical level. C. higher level. D. lower level.

43. Into where can the load command load a program from the library?
A. transient storage. B. communications area. C. main storage. D. symbolic map

44. The link command can call another program at the next __________ __________ ___________ and regains control when the last program issues a:
A. lower send map; link. B. Lower logical level; return. C. Higher logical level; freemain. D. issued transation ID; load.

45. For what is the CESN transaction primarily utilized?
A. system security. B. closing files. C. application library controls. D. debugging

46. Which of the following is an example of correct usage of the CEMT transaction?
A. Security control. B. Debugging. C. Terminal information and controls. Temporary storage allocations

47. How does a program gain access to the TWA?
A. reading a dataset. B. the Address Command. C. the Exec-CICS statement. D. calling program 'DFHEI1'/.

48. For what is the CEDF transaction used?
A. task management. B. files and DASD control. C. CICS data facility manager. D. Debugging programs.

Tentative answer key:
1.A 2.D 3.D 4.C 5.D 6.D 7.C 8.D 9.A 10.C 11.B 12.C 13.A 14.D 15.B 16.D 17.C 18.D 19.B 20.D 21.B 22.A 23.A 24.C 25.E 26.A 27.D 28.D 29.B 30.B 31.C 32.E 33.C 34.D 35.D 36.A 37.C 38.B 39.A 40.A 41.D 42.B 43.C 44.B 45.A 46.C 47.B 48.D.

11/14/99: Karl Haynes: 'Can you use the INSPECT (with TALLYING option) Cobol verb in a CICS COBOL program? My program abends as soon as it hits this statement at run time. However, it does cleanly compile.' Web note: My initial take is that you can; the problem is elsewhere. I'm posting in case I've missed something and will post corrections.

6/4/99: Roland: 'I have two questions regarding CICS. "how to build up LU 6.2 communication?" and "what Psuedo-conversational and real conversational transaction are and their differences." Web note: Pseudo-conversational transactions are almost always the preferred method. In this mode CICS releases resources between responses to user input, i.e. the task is ended awaiting the user response. Please mail LU 6.2 answers to Roland at

Q1. Name some of the common tables in CICS and their usage.
A1. PCT Program Control Table - defines each transaction, containing a list of valid transaction identifiers (transid) where each transaction is paired with its matching program; PPT Program Processing Table - contains a list of valid program names and maps and whether a current version is in the CICS region or needs to be brought in as a new copy; FCT File Control Table - contains a list of files known to CICS, the dataset name and status (closed/open, enabled/disabled); TCT Terminal Control Table - a list of the terminals known to CICS.


Q2. Name some common CICS service programs and explain their usage.
A2. Terminal Control, File Control, Task Control, Storage Control, etc. Each CICS services program controls the usage and status for its resource (file, terminal, etc) within the CICS region.

Q3. What is meant by a CICS task?
A3. A CICS task exists from the time the operator presses the enter key until the application program returns control to CICS.

Q4. What is meant by program reentrance?
A4. A program is considered reentrant if more than one task can execute the code without interfering with the other tasks' execution.

Q5. What is the common sytsems area (CSA)?
A5. 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.

Q6. What is the COMMAREA(communications area)?
A6. This is the area of main storage designed to let programs or tasks communicate with one another, used in programs via RETURN, XCTL and LINK commands.

Q7. What is the EIB (execute interface block)?
A7. The execute interface block lets the program communicate with the execute interface program, which processes CICS commands. It contains terminal id, time of day and response codes.

Q8. What is an mdt (modified data tag) - it's meaning and use?
A8. The modified data tag is the last bit in the attribute byte for each screen field. It indicates whether the corresponding field has been changed.

Q9. What is a transid and explain the system transid CEMT.
A9. Transid is a transaction identifier, a four character code used to invoke a CICS task. CEMT is the master terminal transaction that lets you display and change the status of resources - it is the primary CICS service transaction.

Q10. What is the common work area (CWA)?
A10. The common work area is a storage area that can be accessed by any task in a CICS system.

Q11. How do you access storage outside your CICS program?
A11. In COBOL storage was accessed via BLL cells using the SET option of ADDRESS commands. In COBOL II the special register, ADDRESS OF lets you reference the address of any Linkage Section field.

Q12. How does COBOL II and CICS release 1.7 provide for exceptional conditions and how does that differ from VS COBOL and earlier CICS releases?
A12. VS COBOL used the HANDLE CONDITION command to name routines to pass program control when exceptional conditions were encountered. COBOL II and CICS release 1.7 introduced the RESP option on many CICS commands.

Q13. What is the meaning and use of the EIBAID field?
A13. EIBAID is a key field in the execute interface block; it indicates which attention key the user pressed to initiate the task.

Q14. How do you control cursor positioning?
A14. It's controlled by the CURSOR option of the SEND MAP command using a direct (0 through 1919) or symbolic value.

Q15. What are attribute bytes and how and why are they modified?
A15. Attribute bytes define map field characteristics (brightness, protection, etc); they are modified prior to issuing a SEND MAP command, eg. from normal to intense to highlight an error field.

Q16. How do you invoke other programs? What are the pros and cons of each method.
A16. There are three ways: 1). use a COBOL II CALL statement to invoke a subprogram. This method is transparent to CICS, which sees only the one load module. 2). an EXEC LINK is similar to a call; it invokes a separate CICS program and ends with a RETURN to the invoking program. or 3). an EXEC XCTL which transfers control to another CICS program and does not get control back.

Q17. What is BMS?
A17. BMS is Basic Map Support; it allows you to code assembler level programs to define screens.

Q18. What is the difference between FSET and FRSET?
A18. FSET specifies that the modified data tag should be turned on before the map is sent to the screen. FRSET turns off the attribute byte; it's used to transmit only changed data from the terminal.

Q19. What is the difference between the enter key, the PF keys and the PA keys?
A19. The enter and PF keys transmit data from the screen; the PA keys tell CICS that a terminal action took place, but data is not transmitted.

Q20. Explain the difference among the EXEC LINK, EXEC XCTL and Cobol II static call statements in CICS.
A20. COBOL II allows for static calls which are more efficient than the LINK instruction which establishes a new run-unit.

Q21. Are sequential files supported by CICS?
A21. Yes, but not as part of the File Control Program. They are supported as extra partition transient data files.

Q22. What option can be coded on the RETURN command to associate a transaction identifier with the next terminal input?
A22. The TRANSID option.

Q23. What is an ASRA?
A23. An ASRA is the CICS interrupt code, the equivalent of an MVS abend code.

Q24. What is temporary storage?
A24. Temporary storage is either main or auxiliary storage that allows the program to save data between task invocations.

Q25. What is transient data?
A25. Transient data provides CICS programs with a simple method for sequential processing, often used to produce output for 3270 printers.

Q26. What are the two types of transient data queues?
A26. They are intrapartition, which can only be accessed from within CICS and extrapartition, which are typically used to collect data online, but process it in a batch environment.

Q27. Where are transient data sets defined to CICS?
A27. They are defined in the destination control table (DCT).

Q28. Once a transient data queue is read, can it be reread?
A28. No, silly! That's why IBM calls it transient.

Q29. Name some commands used for CICS file browsing.

Q30. What other file control processing commands are used for file updating?

Q31. What is Journal Recovery and Dynamic Transaction Backout?
A31. Journal Recovery is recovery of changes made to a file during online processing. If a file has I/O problems it is restored from a backup taken before online processing began and the journalled changes are applied. Dynamic transaction backout is the removal of partial changes made by a failed transaction.

Q32. What tables must be updated when adding a new transaction and program?
A32. At a bare minimum the Program Control Table ( PCT) and Program Processing Table (PPT) must be updated.

Q33. What is the meaning of the SYNCPOINT command?
A33. SYNCPOINT without the ROLLBACK option makes all updates to protected resources permanent, with the ROLLBACK option it reverses all updates.

Q34. What do the terms locality of reference and working set mean?
A34. They refer to CICS efficiency techniques. Locality of reference requires that the application program should consistently reference instructions and data within a relatively small number of pages. The working set is the number of program pages needed by a task.

Q35. What do the keywords MAPONLY and DATAONLY mean?
A35. 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.

Q36. What is the MASSINSERT option?
A36. 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.

Q37. What is a cursor in CICS sql processing.
A37. A cursor is a pointer that identifies one row in a sql results table as the current row.
Q38. What are the DB2 steps required to migrate a CICS DB2 program from source code to load module?
A38. A DB2 precompiler processes some sql statements and converts others. It creates a data base request module (DBRM) for the binding step. The bind process uses the DBRM to create an application plan, which specifies the techniques DB2 will use to process the embedded sql statements. The link/edit step includes an interface to the CICS/DB2 attachment facility.

Q39. What is the SQL Communications Area and what are some of its key fields?
A39. It is a data structure that must be included in any host-language program using SQL. It is used to pass feedback about the sql operations to the program. Fields are return codes, error messages, handling codes and warnings.

Q40. What is DCLGEN?
A40. DCLGEN stands for declarations generator; it is a facility to generate DB2 sql data structures in COBOL or PL/I programs.

Q41. Name some translator and compile options and explain their meaning.
A41. For translator SOURCE option prints the program listing, DEBUG enables EDF and COBOL2 alerts the system to use the COBOL II compiler. For the compiler XREF prints a sorted data cross reference and FDUMP prints a formatted dump if the program abends.

Q42. What is the significance of RDO?
A42. RDO is Resource Definition Online. Since release 1.6 RDO allows resources (terminals, programs, transactions and files) to be defined interactively while CICS is running.

Q43. What is CECI?
A43. CECI is the command level interpreter tranid that interactively executes CICS commands. It is a rudimentary CICS command debugger which does not require coding an entire program.

Q44. What is CEDF?
A44. CEDF is the execute diagnostic facility that can be used for debugging CICS programs.

Q45. What is CEBR?
A45. CEBR lets you browse the contents of a specific temporary storage queue.

Q46. Name and explain some common CICS abend codes.
A46. 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.

Q47. What is a logical message in CICS?
A47. A logical message is a single unit of output created by SEND TEXT or SEND MAP commands. BMS collects the separate output from each command and treats them as one entity. This technique may be used to build CICS reports.

Q48. What are the CICS commands associated with temporary storage queue processing?
A48. WRITEQ TS, READQ TS, and DELETEQ, whose meanings should be self-explanatory.

Q49. What are the CICS commands associated with transient data queue processing?

Q50. Ok, so what is the meaning of the ENQ and DEQ commands?
A50. Neither command is exclusively a transient data command. The ENQ command reserves any user defined resource for the specific task. For enqueued transient data no other task will be able to write records to it for as long as it is enqueued. DEQ removes the lock.


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

A51. You can't--at least not directly. Options, none of them good, include: 1) adding a logical-delete flag to the contents of each item; 2) moving item 4 to 3 and 5 to 4 and initializing item 5, all thru rewrites; this is a variant on 1; 3) 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.

Q52. What CICS command would you use to read a VSAM KSDS sequentially in ascending order?

A52. READNEXT reads the next record from a browse operation for any of the three VSAM files.


Q53. How do you get data from a task that began with a START command?

A53. The RETRIEVE command is used to get data from a task that began with a START command.


Q54. What is interval control and what are some of the CICS commands associated with it?

A54. CICS interval control provides a variety of time-related features - common commands are ASKTIME, FORMATTIME, START, RETRIEVE, and CANCEL.


Q55. What is task control and what are the CICS commands associated with it?

A55. Task control refers to the CICS functions that manage the execution of tasks. (Elementary, my dear Watson!) Task control commands are SUSPEND, ENQ, and DEQ.


Q56. What is the CICS LOAD command?

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


Q57. What is the ABEND command and when would you use it?

A57. The ABEND command forces a task to end abnormally. It creates a transaction dump and invokes the dynamic transaction backout.

Q58. 4/99 Mail from Joseph Howard: 'Q: DB2 What is the difference between a package and a plan? How does one bind 2 versions of a CICS transaction with the same module name in two different CICS regions that share the same DB2 subsystem?

A58. Package and plan are usually used synonomously, as in this site. Both contain optimized code for SQL statements - a package for a single program, module or subroutine contained in the datebase request module (DBRM) library. A plan may contain multiple packages and pointers to packages. The one CICS module would then exist in a package that could be referenced in two different plans.