HP-UX SNAplus2 R7 APPC Programmer's Guide
Concepts
Confirmation Processing (half-duplex)
1.2.4 Ending a Conversation
To end a conversation, one of the TPs issues the MC_DEALLOCATE verb, which causes APPC to deallocate the
conversation between the two TPs.
After this conversation is deallocated, each TP either issues another [MC_]ALLOCATE or RECEIVE_ALLOCATE
verb to start another conversation (with this or another partner TP), or issues the TP_ENDED verb.
A TP can participate in multiple conversations simultaneously. In this case, the TP issues the TP_ENDED verb
when all conversations have been deallocated.
1.3 Confirmation Processing (half-duplex)
Using confirmation processing, a TP sends a confirmation request with the data; the receiving TP confirms receipt
of the data or indicates that an error occurred. Each time the two TPs exchange a confirmation request and response,
they are synchronized.
The example of confirmation processing in Table 1–2, Confirmation Processing shows two ways of confirming the
transfer of data: requesting confirmation after sending the data (by using the CONFIRM verb), and requesting
confirmation at the end of a transaction (by requesting confirmation on the DEALLOCATE verb). Confirmation can
also be requested on the PREPARE_TO_RECEIVE verb; this asks the partner TP to confirm receipt of data, and
then begin to send data itself. For more information, see Section 1.5.2, State Changes. A pair of TPs may choose
to use only one of these mechanisms; in the following example, the invoked TP uses the PREPARE_TO_RECEIVE
verb without requesting confirmation; this simply tells the partner TP to send data.
Table 1–2 Confirmation Processing
Invoking TP Flow Invoked TP
TP_STARTED
MC_ALLOCATE (sync_level =
AP_CONFIRM_SYNC_LEVEL)
MC_SEND_DATA
MC_CONFIRM
—>
RECEIVE_ALLOCATE
MC_RECEIVE_AND_WAIT (primary_rc =
AP_OK)(what_rcvd = AP_DATA_COMPLETE
)
MC_RECEIVE_AND_WAIT (primary_rc=
AP_OK)(what_rcvd =
AP_CONFIRM)
MC_SEND_ERROR
<—
(MC_CONFIRM returns, primary_rc =
AP_PROG_ERROR_PURGING)
MC_PREPARE_TO_RECEIVE (ptr_type =
AP_FLUSH)
<—
25