z/OS Communications Server: SNA Programming
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Logic of the DFASY exit routine of Sample Program 2

z/OS Communications Server: SNA Programming
SC27-3674-00

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
The diagram shows the logic of the DFASY exit routine of sample program 2 with numbers referring to additional notes that explain the details.
Quiescing can be done for two reasons:
  • To ensure that, at a given time, only the LU or the VTAM® application program can be sending. This use of quiescing is not demonstrated in this sample program. (Quiescing is only one means available to ensure that both sides do not send at the same time. The change-direction protocol can also be used.) In many cases, receiving a response ensures that both ends do not send at the same time.
  • To interrupt a steady flow of input data so that an output operation can be performed. This is the use of quiescing that is demonstrated here. For example, a teller at a 3600 terminal might wish to temporarily interrupt a long printout so that an informational request (which does not require a reply) can be sent to the VTAM application program. As a result of a teller action, the 3601 LU for the teller's workstation sends a Quiesce-at-End-of-Chain request to the VTAM application program, which can then agree to stop sending and be ready to read input from the LU.

    The Quiesce-at-End-of-Chain and Release-Quiesce requests are sent as expedited-flow requests unaccompanied by data. VTAM schedules the VTAM application program's DFASY exit routine when one of these requests is received.

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.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014