Chaining
LUs can group any number of data requests into a set called a chain. The sender can indicate which part of a chain is being transmitted—the first request of the chain, the last request of the chain, neither (the request is somewhere in the middle), or both (the request is the only request in the chain).
- No-response chain, in which each request in the chain asks for no response
- Exception-response chain, in which each request in the chain asks only for an exception response
- Definite-response chain, in which the last request in the chain asks for a definite response and all other requests ask only for an exception response.
The sender of a chain that has not yet been completely sent can at any time send a Cancel request to the receiver (the sender might send this request because the receiver has returned a negative response). The Cancel request informs the receiver that the current chain is abnormally terminated, that the receiver will not receive further requests in the chain, and that the receiver might want to discard the chain requests it has already received.
The actual unit of work that the chain represents is determined entirely by the PLU and SLU. When the session is established, the PLU and the SLU determine what chaining protocols are to be used.
Figure 1 illustrates a possible use of chaining. In this example, an LU submits an inquiry to the application program. The application program can obtain various pieces of information from data files and send them to the LU as each becomes available. By chaining the output requests, the application program has a convenient way of telling the LU whether any given piece of data represents the beginning, middle, or end of a reply to an inquiry.
Figure 2 and Figure 3 show in more detail the use of chaining illustrated by Figure 1. Chaining is also shown in Figure 8.


