Figure 1 shows the logic of
the DFASY exit routine in sample program 2. The DFASY exit routine
is entered when a request is received from the LU asking the program
to quiesce (stop) sending to the LU or to resume sending, if sending
was previously quiesced.
Figure 1. Logic of the DFASY
exit routine
Quiescing can be done for two reasons:
The following notes are keyed to
Figure 1.
- 1
- The type of request that caused the DFASY exit routine to be entered
is available in the CONTROL field of the read-only RPL whose address
is provided by VTAM on entry.
If a Quiesce-at-End-of-Chain (QEC) request was received, this routine
sets a hold indicator in the work area associated with the session.
The session-related control block, as in the RESP exit routine, is
located by the address in the USER field of the RPL.
- 2
- If the quiesce is to be immediate, the exit routine can instruct
the LU to discard the chain by issuing a SEND macroinstruction that
specifies CONTROL=CANCEL. Alternatively, the next SEND would be set
to CHAIN=LAST; the LU determines whether to use the chain requests
previously received. If it is in the middle of a chain and not all
of the chain is to be resent, the VTAM application
program can note where sending is to resume when the quiesce condition
is released.
- 3
- The QEC request is acknowledged by sending back a Quiesce Complete
(QC) request. So that the LU's input is able to complete the request
to receive input from any session being recurrently issued in the
RPL1 exit routine, the session is put back into continue-any mode
(OPTCD=CA).
- 4
- This flag might be required in addition to the hold indicator
to determine where to resume sending. Refer to step 2.
- 5
- If the request is a Release-Quiesce (RELQ) request, the hold indicator
is turned off.
- 6
- If further output is being held, the output routine is rescheduled
for this session, and an ECB is posted so that the wait routine branches
to it. Control is returned to VTAM.