IMS: Interview Questions for IMS-DC

By Abhishek




Q: What is an I/O PCB.
A: It is a PCB used by a program to retrieve or send message segments
   from the IMS message queues.
   It must be the first PCB MASK that appears in the linkage section
   of a program that intends to use IMS DC services.

Q: How does a MPP retrieve message from IMS message queue.
A: The MPP issues a DC GU call (A call that use I/O PCB) to retrieve
   the input message from the IMS message queue. When the program 
   gets a QC status code as a result of its DC GU call, it knows that
   there are no more messages for it on the queue and it ends.

Q: How des a MPP retrieve multiple-segment input messages.
A: The MPP issues a DC GU call to retrieve the first segment of
   the message and then issues DC GN calls repeatedly until it
   encounters a QD status code, which means that there are no more
   message segments left for the current messgae. To retrieve 
   the next message, the process is repeated. A QC status code 
   from DC GU will mean that there are no more messages left.

Q: What will happen if you issue another DC GU call before you issue
   all DC GN calls necessary to retrieve all the segments of a single
   message.
A: All the remaing segments will be lost and the first segment from the
   next message will be retrieved.

Q: How do you define the I/O area for an input message segment.
A: It is defined as follows:
   01 WS-INPUT-MESG-AREA.
      10 WS-LL                 PIC S9(3) COMP.
      10 WS-ZZ                 PIC S9(3) COMP.
      10 WS-TEXT               PIC X(999).

   Note that the first 9 bytes in WS-TEXT contain the transaction code.
   In a multiple-segment input messages, the transaction code is only
   present in the first segment, not subsequent ones.

Q: How do you send an output message.
A: You send output message segments by issuing DC ISRT calls. Before
   you issue a DC ISRT call, you build the output message segment in 
   the I/O area you name on the call.

Q: How do you send a multiple-segment output message.
A: By issuing a separate DC ISRT call for each message segment. IMS
   considers a unbroken series of DC ISRT calls to make up a single
   message. The series is broken when your program issues a DC GU call,
   which signals to IMS that your program is ready to process a new
   input message. IMS hold all of the segments your program inserts in
   the destination's terminal output queue until the program has finished
   processing the input message.


Q: How do you define the I/O area for an output message segment.
A: It is defined as follows:
   01 WS-OUT-MESG-AREA.
      10 WS-LL                 PIC S9(3) COMP VALUE +706.
      10 WS-ZZ                 PIC S9(3) COMP VALUE ZERO.
      10 WS-TEXT               PIC X(702).

   Note that it is your responsiblity to populate WS-LL correctly.

Q: What is a format set.
A: A group of related DIF, DOF, MID, MOD is called a format set.

Q: What is device format.
A: The group of statements that define the screen layout for a terminal
   are called a device format. In other words, a group of related DIF
   and DOF is device format.

Q: How do you dynamically change field attributes.
A: On the MFLD in MOD, code ATTR=YES. MFS will now assume that the first two
   bytes of the message field will contain the attribue control 
   information. Make sure that the LTH parameter in MFLD is now 2 bytes
   more than the corressponding DFLD LTH. Now the program can change 
   the first two bytes to change the field attributes. eg if you move
   left brace { to the first byte, it would mean that cursor is
   positioned on this field. Similarly hexadecimal value 80 means that
   default attribues should be used.

Q: How can you send program output to a MOD belonging to different Format set.
A: The application program processes the input message and formats and
   sends a return output message. By default, MFS uses the MOD from the
   current format set to map the output message fields back to the device.
   However if the out message needs to fo to a MOD belonging to a different
   format set, the DC ISRT call for the output message is coded with an
   additional argument that specifies the name of the new mod. Eg
      CALL 'CBLTDLI' USING WS-ISRT, LS-IO-PCB-MASK, WS-OUT-MESG, WS-MOD-NAME

Q: How do you assign PF keys so that they can initiate a new MOD.
A: By setting PFK parameter of the DEV statement, which assigns literal
   values to the enabled PF keys:
       PKF=(PFKFIELD,'/FORMAT MOD1','/FORMAT MOD2','/FORMAT MOD2')
   That way if user presses PF1, screen associted with MOD1 will be displayed.

Q: What is modified data tag. How is it set.
A: MDT is a field attribute, which indicates whether or not the data in 
   the field has been changed by the terminal user since the screen was
   last sent to the device. It is set by ATTR=(MOD/NOMOD). If the attribute
   is set to MOD, it means that the field MDT is set on even if the user
   has not modified the field. Otherwise the MDT is set on only when the
   user modifies the data in some way.


Go To Top


Send me an email