Transaction flow in DB/DC and DCCTL environments

A distinct sequence of events occurs during the processing of a transaction. Message-related processing is asynchronous within IMS™, that is, not associated with a dependent region's processing.

Examples of this kind of processing are message traffic, editing, formatting, and recovery-related message enqueuing, any of which can be done concurrently with application program processing for other transactions. Events from application program scheduling to termination are associated with a PST and can be regarded as synchronous.

To get an overall picture of the activity that takes place when an online IMS system is processing a mix of transactions concurrently, see the following figure. The figure shows a sequence of events. Each event is explained in notes that follow the figure.

The unit of work by which most IMS systems are measured is the transaction (or a single conversation iteration, from entering of an input message to receipt of one or more output messages in response). One way of representing the flow of units of work is to compare it to three funnels through which all transactions must pass, as illustrated in the following figure. The events that account for the principal contributions to transaction response time are numbered in the center. The items entered on the left of the diagram are message related, and those on the right are related to the application program. The arrows trace the flow for an individual transaction. (The diagram does not show the paging element or system checkpoint processing that is distributed through the elapsed times.)

Figure 1. Processing events during transaction flow through IMS
This figure is described in the notes that follow.

Notes to the figure:

  1. Wait for Poll.

    This is the time between pressing the Enter key and receiving a poll that results in the data being read by the channel program. With several control units on a line, a slight delay is probable, because each control unit is polled in turn until one is ready to send. There can also be delays caused by data being transmitted on the line from (or to) another terminal. Also, IMS communications can be currently processing an input message from a terminal on the line and polling has not recommenced. Some form of hardware monitor is required to measure the time waiting for poll.

  2. Data Transfer.

    This time includes propagation delay and modem turnarounds for multi-block input messages. You can estimate the data transfer times if the volume of data transmitted is known.

  3. Input Message Processing.

    The IMS control of the transaction begins when the input message is available in the HIOP. The time the message spends in this pool, in MFS processing, and in being moved to the message queue buffers affects response time. Individual transaction I/O to the Format library affects the message queue. A major factor in determining response time is whether the respective pools are large enough for the current volume of transactions flowing into input queuing. In particular, if the message queue pool is too small, overflow to the message queue data sets occurs.

  4. Message Classification.

    This is the call to the z/OS® WLM to obtain a WLM service classification for the incoming message.

  5. Input Queuing.

    This is the time spent on the input queue or in the message queue buffers waiting for a message region to become available. In a busy system, this time can become a major portion of the response time. The pattern of programs scheduled into available regions and the region occupancy percentage are important and should be closely monitored.

  6. Scheduling.

    Because of class scheduling, regions can be idle while transactions are still on the queue. The effects of scheduling parameters can be:

    • Termination of scheduling as a result of PSB conflict or message class priorities
    • Termination of scheduling as a result of intent conflict
    • Extension of scheduling by I/Os to IMS.ACBLIB for intent lists, PSBs, or DMBs
    • Pool space failures in either the PSB or DMB pools
  7. Init PB Call (Activate Delay Monitoring Environment).

    Activate the WLM delay monitoring environment for the message when it is placed into the dependent region. The WLM PB is initialized with the Service Classification and transaction name, message arrival time, program execution start time (current time), userid, and so forth.

  8. Program Load.

    See event 9

  9. Program Initialization.

    After scheduling, several kinds of processing events occur before the application program can start:

    • Contents supervision for the dependent region
    • Location of program libraries and directories to them
    • Program fetch from the program library
    • Program initialization up to the time of the first DL/I call to the message queue

    For monitoring, you can obtain the overall time for the above activities. The number of I/Os should be checked periodically.

  10. Message Queue GU.

    This is the GU call to the message queue. It is chosen as a measuring point because the event is recorded on the system log and is used as a starting point for iterations of processing when more than one message is serviced at a single scheduling of the program.

  11. Program Execution.

    The time for program execution, from first message call to the output message insert, is a basic statistic for each individual transaction. It is important to account for that time in terms of the work performed:

    • The number of transactions processed per schedule
    • The number and type of DL/I calls per transaction
    • The number of I/Os per transaction

    A useful breakdown of elapsed time into processor time and I/O helps determine which transactions use significant resource.

  12. Output Message Insert.

    This time begins the asynchronous processing for the output response. The output message requests flow into the funnel to be serviced while the application program is either beginning to process another input message or is performing closeout processing and program termination.

  13. Wait for Sync Point.

    When an output message is issued by a program, it is enqueued on a temporary destination until the program reaches a synchronization point. For programs specified as MODE=MULT, a long delay in output transmission can occur when the program goes on to process several transactions at one scheduling. None of the previous output messages can be released for transmission until the program ends. If the program fails, all current transactions are backed out. Actually, when the messages are dequeued, LIFO sequence is used, from temporary to permanent destination. With MODE=SNGL, the wait for sync point (at the next GU to the message queue) is normally negligible.

  14. Program Termination.

    In the case of MODE=MULT, discussed in event 13, the synchronization point occurs at program termination. Any database updates are purged from the database buffer pools, and the waiting output messages are released.

    In the MODE=SNGL case, the synchronization point occurs at the previous message queue GU call (usually a GU with a QC status code), and no database commit processing occurs at termination, unless the application program has updated a database after the last message queue GU.

  15. WLM Notify Call.

    This tells WLM that the application program has ended execution. The PB and current time are passed to WLM.

  16. Wait for Selection.

    This time is similar to Wait for Poll on input, with one difference—an output message might not have to wait for the completion of a polling cycle if no polling is in progress on the line at the time the output message is enqueued. However, there might be a wait for the duration of data transmission to other terminals on the line. In a busy system, this could account for the majority of time spent on the output queue.

  17. Output Message Processing.

    This activity is similar to event 3.

  18. WLM Report Call.

    This tells WLM the response is being sent. IMS passes the input message arrival time, the Service Classification, the current time (output message send time).

  19. Data Transfer.

    This activity is similar to event 2.

  20. Output Queue Processing.

    Output messages that have been sent are dequeued after their receipt has been acknowledged by the terminal. In the case of paged output, the acknowledgment is a consequence of another input or a PA2 entry from the terminal.