|
|
|
|
The following table shows the conversation states in which each APPC verb may be issued, and the state change which occurs on completion of the verb. In some cases, the state change depends on the primary_rc parameter returned to the verb; where this applies, the applicable primary_rc values are shown in the same column as the verb. Where no primary_rc values are shown, the state changes are the same for all return codes, with the following exceptions:
The conversation will always enter Reset state if any of the following return codes are received:
The following non-OK return codes do not cause any state change. The conversation always remains in the state in which the verb was issued.
The possible conversation states are shown as column headings. For each combination of verb and primary_rc value, the following abbreviations and symbols are given under each state to indicate the results of issuing the verb in that state:
Verb cannot be issued in this state.
State of the conversation after the verb has completed: Reset, Send, Send_Pending, Receive, Confirm, Confirm_Send, Confirm_Deallocate, or Pending_Post.
There is no conversation state after the verb is issued.
Not applicable to consider the previous state.
Return code shown cannot occur in this state.
In the Return codes column of the table, the abbreviation AP_ERROR is used for:
| Verb and primary_rc Values | State in Which Issued | |||||||
Reset (T) | Send (S) | Send Pend (SP) | Recv (R) | Confm (C) | Confm Send (CS) | Confm Deall (CD) | Pend Post (PP) | |
| TP_STARTED | ||||||||
AP_OK |
T |
/ |
/ |
/ |
/ |
/ |
/ |
/ |
other primary_rc values |
- | |||||||
| TP_ENDED | ||||||||
| AP_OK | - | - | - | - | - | - | - | - |
other primary_rc values |
T | S | SP | R | C | CS | CD | P |
| RECEIVE_ALLOCATE | ||||||||
| AP_OK | R | / | / | / | / | / | / | / |
| other primary_rc values | - | |||||||
| GET_LU_STATUS | X | S | SP | R | C | CS | CD | P |
| GET_TP_PROPERTIES | T | S | SP | R | C | CS | CD | P |
| SET_TP_PROPERTIES | T | S | SP | R | C | CS | CD | P |
| GET_TYPE | X | S | SP | R | C | CS | CD | P |
| [MC_]ALLOCATE | ||||||||
| AP_OK | S | / | / | / | / | / | / | / |
other primary_rc values |
T | |||||||
[MC_]CONFIRM | ||||||||
| AP_OK | X | S | S | X | X | X | X | X |
| AP_ERROR | R | R | ||||||
| [MC_]CONFIRMED | X | X | X | X | R | S | T | X |
| [MC_]DEALLOCATE | ||||||||
| AP_ABEND_* dealloc_type values | X | T | T | T | T | T | T | T |
| other dealloc_type values | ||||||||
AP_ERROR |
X | R | R | X | X | X | X | X |
| other primary_rc values | T | T | ||||||
[MC_]FLUSH |
X | S | S | X | X | X | X | X |
| [MC_]GET_ ATTRIBUTES | X | S | SP | R | C | CS | CD | P |
| [MC_]PREPARE_TO_ RECEIVE | X | R | R | X | X | X | X | X |
| [MC_]RECEIVE_AND_POST (See Note 1) | X | P | P | P | X | X | X | X |
| [MC_]RECEIVE_AND_WAIT (See Note 1 for Windows) | X | See Note 2 | See Note 2 | See Note 2 | X | X | X | X |
| [MC_]RECEIVE_ IMMEDIATE | X | X | X | See Note 2 | X | X | X | X |
| [MC_]REQUEST_TO_SEND | X | X | X | R | C | X | X | P |
| [MC_]SEND_ CONVERSATION | T | / | / | / | / | / | / | / |
| [MC_]SEND_DATA | ||||||||
| AP_OK | X | S | S | X | X | X | X | X |
| AP_ERROR | R | |||||||
| [MC_]SEND_ERROR | ||||||||
| AP_OK | X | S | S | S | S | S | S | S |
| AP_ERROR | R | |||||||
| [MC_]TEST_RTS | X | S | S | R | C | CS | CD | P |
| [MC_]TEST_RTS_AND_ POST | X | S | S | R | C | CS | CD | P |
After [MC_]RECEIVE_AND_POST has been issued and received the initial primary_rc of AP_OK, the conversation changes to Pending-Post state. Once the supplied callback routine has been called, to indicate that the verb has completed, the new conversation state depends on the primary_rc and what_rcvd parameters as in Note 2.
The state change after one of the RECEIVE verbs depends on both the primary_rc and what_rcvd parameters.
If the primary_rc parameter is AP_PROG_ERROR, AP_SVC_ERROR, or ([MC_]RECEIVE_IMMEDIATE only) AP_UNSUCCESSFUL, the new state is Receive.
If the primary_rc parameter is AP_DEALLOC, the new state is Reset.
If the primary_rc parameter is AP_OK, the new state depends on the value of the what_rcvd parameter:
Receive state
Send state
Send Pending state
Confirm state
Confirm Send state
Confirm Deallocate state
|
|
|
|
|