FAQs(61 to 75)

61) How to establish dynamic cursor position on a map? How to get the cursor position when we receive a map?

A) We dynamically position a cursor through an application program using a symbolic name of the symbolic map by placing -1 into the field length field ( i.e., fieldname + L) of the field where you wish to place the cursor. The SEND MAP command to be issued must have the CURSOR option ( without value ). Also, the mapset must be coded with MODE = INOUT in the DFHMSD macro. We get the cursor position when we receive a map by checking EIBCPOSN, which is a halfword ( S9(4) COMP) binary field in EIB, and contains offset position (relatively to zero ) of the cursor on the screen.

62) What is MDT?

A) 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.

63) 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).

64) Name three ways the Modified Data Tag can be set on?

A) 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.

65) What is a mapset?

A) A mapset is a collection of BMS maps link-edited together.

66) What is the function of DFHMDF BMS macro?

A) The DFHMDF macro defines fields, literal, and characteristics of a field.

67) Why is a TERM ID recommended in naming a TSQ?

A) In order to avoid confusion and to maintain data security, a strict naming convention for QID will be required in the installation. Moreover, for a terminal-dependent task (e.g., pseudo-conversational task), the terminal id should be included in QID in order to ensure the uniqueness of TSQ to the task.

68) 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.

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

A) 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.

70) What is the difference between getting the system time with EIBTIME and ASKTIME command?

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

71) 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.

72) Explain floating maps with illustration.

A) Maps which can position themselves relative to the previous maps on the screen or page are known as

the floating maps. For this you have to use special positional operands to LINE and COLUMN parameters of the BMS macro definition. They are SAME, NEXT. Actually this floating map concept is there only in Full BMS where as it is not available in Min. or Standard BMS macros. RECEIVE MAP is not recommended in the case of floating maps. Hence these maps are normally used to send information such as selected records from a database to screen but not for data entry. A mapset can contain more than one m ap in it, you may use all these maps to build a screen. In that case there are two ways to send these maps on to the screen

i ) Use separate SEND MAP commands one for each map involved. or

ii) Use ACCUM operand along with SEND MAP command and while sending really on to the

screen use SEND PAGE to display them at one shot. The second one is called

cumulative mapping scheme where you also can use floating maps.

Let's take a situation where you have to build a screen like this

HEADER MAP (no. of A gr. employs)

DETAIL MAP (employee list )

TRAILER MAP (Press a key to continue...)

Under such situations whatever the detail map needed that is to be displayed again and again to display all the information one screenful at a time. In this floating map concept helps.

Code the map like this

M1 DFHMDI ...... HEADER=YES,JUSTIFY=FIRST..................

M2 DFHMDI ...? ......................... LINE=NEXT....................

M3 DFHMDI ........TRAILER=YES,JUSTIFY=LAST...........................

Here M2 is detail map, which is coded as floating map. Procedure:

Every time using cumulative map technique send header (first) and followed by detail map next into a page buffer once the page is full an overflow occurs by using CICS HANDLE OVERFLOW command send first trailer map then header map ( This will do two things a) it sends previous map on to the screen b) starts fresh page buffer ). Repeated this until no more records to be retrieved. Here M2 is the one which holds the record values read from the file.

73) What is the function of the Terminal Control Table(TCT)?

A) The TCT defines the characteristics of each terminal with which CICS can communicate.

74) What does it mean when EIBCALEN is equal to zeros?

A) When the length of the communication area (EIBCALEN) is equal to zeros, it means that no data was passed to the application.

75) How can the fact that EIBCALEN is equal to zeros be of use to an application programmer?

A) When working in a pseudo-conversational mode, EIBCALEN can be checked if it is equal to zero. A programmer can use this condition as a way of determining first time usage(of the program).