Previous Topic: Force Data Transmission

Next Topic: Receive Operations

Switch State from Send to Receive

When a procedure has completed all send operations and expects some response data from the conversation partner it can switch from send to receive state by issuing:

&APPC PREPARE_TO_RECEIVE
&APPC PREPARE_TO_RECEIVE TYPE=FLUSH
&APPC PREPARE_TO_RECEIVE TYPE=CONFIRM

If no type is specified then it will default to FLUSH if the conversation has a sync_level of NONE, or CONFIRM if the conversation has a sync_level of CONFIRM (as set by the allocation request and reflected in the &ZAPPCSYN system variable).

The FLUSH option simply ensures all data is sent to the other end with a request to change direction. For the CONFIRM option the remote procedure must issue an &APPC CONFIRMED request before the verb completes and receive state is entered.

If data is expected in response then a confirmation can usually be avoided by simply issuing, from send state, either request:

&APPC RECEIVE_AND_WAIT
&APPC RECEIVE_NOTIFY

These requests will perform an implied &APPC PREPARE_TO_ RECEIVE TYPE=FLUSH before placing the procedure in receive state.