The state tables for APPC mapped conversations

The state tables provide the following information for writing a DTP program. Firstly, they show which commands can be issued from each conversation state. Secondly, they show the state transitions that can occur and the EIB fields that can be set as a result of issuing a command.

How to use the state tables

The commands you can issue, coupled with the EIB flags that can be set after execution, are shown in column 1 down the left side of each table. Alongside each command, in column 2, the EIB fields shown are in the order in which the application should test them. The possible conversation states are shown across the top of the table. The states correspond to the columns of the table. The intersection of row (command and EIB flag) and column (state) represents the state transition, if any, that occurs when that command returning a particular EIB flag is issued in that state.

A number at an intersection indicates the state number of the next state. Other symbols represent other conditions, as follows:

Symbol Meaning
N/A Cannot occur.
× The EIB flag is any one that has not been covered in earlier rows, or it is irrelevant (but see the note on EIBSIG if you want to use ISSUE SIGNAL).
Ab The command is not valid in this state. Issuing a command in a state in which it is not valid usually causes an ATCV abend.
= Remains in current state.
End End of conversation.
Table 12. APPC mapped conversations at sync level 0, part 1
Command issued EIB flag returned4 ALLO- CATED5 SEND PEND- RECEIVE PEND- FREE RECEIVE CONF- RECEIVE
State 1 State 2 State 3 State 4 State 5 State 6
CONNECT PROCESS
EIBERR
+ EIBFREE
   12    Ab    Ab    Ab    Ab    N/A
CONNECT PROCESS 6    ×    2    Ab    Ab    Ab    Ab    N/A
EXTRACT PROCESS7    ×    =    =    =    =    =    N/A
EXTRACT ATTRIBUTES    ×    =    =    =    =    =    N/A
SEND (any valid form)
EIBERR
+ EIBFREE
   Ab    12    Ab    Ab    Ab    N/A
SEND (any valid form) EIBERR    Ab    5    Ab    Ab    Ab    N/A
SEND INVITE WAIT    ×    Ab    5    Ab    Ab    Ab    N/A
SEND INVITE    ×    Ab    3    Ab    Ab    Ab    N/A
SEND LAST WAIT    ×    Ab    12    Ab    Ab    Ab    N/A
SEND LAST    ×    Ab    4    Ab    Ab    Ab    N/A
SEND WAIT    ×    Ab    =    Ab    Ab    Ab    N/A
SEND    ×    Ab    =    Ab    Ab    Ab    N/A
RECEIVE
EIBERR
+ EIBFREE
   Ab    128    129    Ab    12    N/A
RECEIVE EIBERR    Ab    58    59    Ab    =    N/A
RECEIVE EIBFREE    Ab    128    129    Ab    12    N/A
RECEIVE EIBRECV    Ab    58    59    Ab    =    N/A
RECEIVE NOTRUNCATE10 EIBCOMPL10    Ab    58    59    Ab    =    N/A
RECEIVE    ×    Ab    =8    29    Ab    2    N/A
CONVERSE11 EIB flags and states as for RECEIVE
ISSUE ERROR EIBFREE    Ab    12    12    Ab    12    N/A
ISSUE ERROR    ×    Ab    =    2    Ab    2    N/A
ISSUE ABEND    ×    Ab    12    12    12    12    N/A
ISSUE SIGNAL12    ×    Ab    =    =    Ab    =    N/A
WAIT CONVID    ×    Ab    =    5    12    Ab    N/A
FREE    ×    End    End 13    Ab    End    Ab    N/A
Note:
See topic Notes on the tables for footnotes.
Table 13. APPC mapped conversations at sync level 0, part 2
CONF- SEND CONF- FREE SYNC- RECEIVE SYNC- SEND SYNC- FREE FREE ROLL- BACK Command returns
State 7 State 8 State 9 State 10 State 11 State 12 State 13
   N/A    N/A    N/A    N/A    N/A    Ab    N/A
Immediately
 
   N/A    N/A    N/A    N/A    N/A    Ab    N/A Immediately
   N/A    N/A    N/A    N/A    N/A    =    N/A Immediately
   N/A    N/A    N/A    N/A    N/A    =    N/A Immediately
   N/A    N/A    N/A    N/A    N/A    Ab    N/A
After error detected
 
   N/A    N/A    N/A    N/A    N/A    Ab    N/A After error detected
   N/A    N/A    N/A    N/A    N/A    Ab    N/A After data flows
   N/A    N/A    N/A    N/A    N/A    Ab    N/A After data buffered
   N/A    N/A    N/A    N/A    N/A    Ab    N/A After data flows
   N/A    N/A    N/A    N/A    N/A    Ab    N/A After data buffered
   N/A    N/A    N/A    N/A    N/A    Ab    N/A After data flows
   N/A    N/A    N/A    N/A    N/A    Ab    N/A After data buffered
   N/A    N/A    N/A    N/A    N/A    Ab    N/A
After error detected
 
   N/A    N/A    N/A    N/A    N/A    Ab    N/A After error detected
   N/A    N/A    N/A    N/A    N/A    Ab    N/A After error detected
   N/A    N/A    N/A    N/A    N/A    Ab    N/A When data available
   N/A    N/A    N/A    N/A    N/A    Ab    N/A When data available
   N/A    N/A    N/A    N/A    N/A    Ab    N/A When data available
States as for RECEIVE When data available
   N/A    N/A    N/A    N/A    N/A    Ab    N/A After response from partner
   N/A    N/A    N/A    N/A    N/A    Ab    N/A After response from partner
   N/A    N/A    N/A    N/A    N/A    Ab    N/A Immediately
   N/A    N/A    N/A    N/A    N/A    Ab    N/A Immediately
   N/A    N/A    N/A    N/A    N/A    Ab    N/A Immediately
   N/A    N/A    N/A    N/A    N/A    End    N/A Immediately
Table 14. APPC mapped conversations at sync level 1, part 1
Command issued EIB flag returned4 ALLO- CATED5 SEND PEND- RECEIVE PEND- FREE RECEIVE CONF- RECEIVE
State 1 State 2 State 3 State 4 State 5 State 6
CONNECT PROCESS
EIBERR
+ EIBFREE
   12    Ab    Ab    Ab    Ab    Ab
CONNECT PROCESS6    ×    2    Ab    Ab    Ab    Ab    Ab
EXTRACT PROCESS7    ×    Ab    =    =    =    =    =
EXTRACT ATTRIBUTES    ×    =    =    =    =    =    =
SEND (any valid form)
EIBERR
+ EIBFREE
   Ab    12    12    12    Ab    Ab
SEND (any valid form) EIBERR    Ab    5    5    5    Ab    Ab
SEND INVITE WAIT    ×    Ab    5    Ab    Ab    Ab    Ab
SEND INVITE CONFIRM    ×    Ab    5    Ab    Ab    Ab    Ab
SEND INVITE    ×    Ab    3    Ab    Ab    Ab    Ab
SEND LAST WAIT    ×    Ab    12    Ab    Ab    Ab    Ab
SEND LAST CONFIRM    ×    Ab    12    Ab    Ab    Ab    Ab
SEND LAST    ×    Ab    4    Ab    Ab    Ab    Ab
SEND WAIT    ×    Ab    =    Ab    Ab    Ab    Ab
SEND CONFIRM    ×    Ab    =    5    1214    Ab    Ab
SEND    ×    Ab    =    Ab    Ab    Ab    Ab
RECEIVE
EIBERR
+ EIBFREE
   Ab    128    129    Ab    12    Ab
RECEIVE EIBERR    Ab    58    59    Ab    =    Ab
RECEIVE
EIBCONF
+ EIBFREE
   Ab    88    89    Ab    8    Ab
RECEIVE
EIBCONF
+ EIBRECV
   Ab    68    69    Ab    6    Ab
RECEIVE EIBCONF    Ab    78    79    Ab    7    Ab
RECEIVE EIBFREE    Ab    128    129    Ab    12    Ab
RECEIVE EIBRECV    Ab    58    59    Ab    =    Ab
RECEIVE NOTRUNCATE10 EIBCOMPL10    Ab    58    59    Ab    =    Ab
RECEIVE    ×    Ab    =8    29    Ab    2    Ab
CONVERSE11 EIB flags and states as for RECEIVE
ISSUE CONFIRMATION    ×    Ab    Ab    Ab    Ab    Ab    5
ISSUE ERROR EIBFREE    Ab    12    12    Ab    12    12
ISSUE ERROR    ×    Ab    =    2    Ab    2    2
ISSUE ABEND    ×    Ab    12    12    12    12    12
ISSUE SIGNAL12    ×    Ab    =    =    Ab    =    =
WAIT CONVID    ×    Ab    =    5    12    Ab    Ab
FREE    ×    End    End13    Ab    End    Ab    Ab
Note:
See topic Notes on the tables for footnotes.
Table 15. APPC mapped conversations at sync level 1, part 2
CONF- SEND CONF- FREE SYNC- RECEIVE SYNC- SEND SYNC- FREE FREE ROLL- BACK Command returns
State 7 State 8 State 9 State 10 State 11 State 12 State 13
   Ab    Ab    N/A    N/A    N/A    Ab    N/A
Immediately
 
   Ab    Ab    N/A    N/A    N/A    Ab    N/A Immediately
   =    =    N/A    N/A    N/A    =    N/A Immediately
   =    =    N/A    N/A    N/A    =    N/A Immediately
   Ab    Ab    N/A    N/A    N/A    Ab    N/A
After error flow detected
 
   Ab    Ab    N/A    N/A    N/A    Ab    N/A After error flow detected
   Ab    Ab    N/A    N/A    N/A    Ab    N/A After data flows
   Ab    Ab    N/A    N/A    N/A    Ab    N/A After response from partner
   Ab    Ab    N/A    N/A    N/A    Ab    N/A After data buffered
   Ab    Ab    N/A    N/A    N/A    Ab    N/A After data flows
   Ab    Ab    N/A    N/A    N/A    Ab    N/A After response from partner
   Ab    Ab    N/A    N/A    N/A    Ab    N/A After data buffered
   Ab    Ab    N/A    N/A    N/A    Ab    N/A After data flows
   Ab    Ab    N/A    N/A    N/A    Ab    N/A After response from partner
   Ab    Ab    N/A    N/A    N/A    Ab    N/A After data buffered
   Ab    Ab    N/A    N/A    N/A    Ab    N/A
After error detected
 
   Ab    Ab    N/A    N/A    N/A    Ab    N/A After error detected
   Ab    Ab    N/A    N/A    N/A    Ab    N/A
After confirm flow detected
 
   Ab    Ab    N/A    N/A    N/A    Ab    N/A
After confirm flow detected
 
   Ab    Ab    N/A    N/A    N/A    Ab    N/A After confirm flow detected
   Ab    Ab    N/A    N/A    N/A    Ab    N/A After error detected
   Ab    Ab    N/A    N/A    N/A    Ab    N/A When data available
   Ab    Ab    N/A    N/A    N/A    Ab    N/A When data available
   Ab    Ab    N/A    N/A    N/A    Ab    N/A When data available
States as for RECEIVE When data available
   2    12    N/A    N/A    N/A    Ab    N/A Immediately
   12    12    N/A    N/A    N/A    Ab    N/A After response from partner
   2    2    N/A    N/A    N/A    Ab    N/A After response from partner
   12    12    N/A    N/A    N/A    Ab    N/A Immediately
   =    =    N/A    N/A    N/A    Ab    N/A Immediately
   Ab    Ab    N/A    N/A    N/A    Ab    N/A Immediately
   Ab    Ab    N/A    N/A    N/A    End    N/A Immediately
Table 16. APPC mapped conversations at sync level 2, part 1
Command issued EIB flag returned4 ALLO- CATED5 SEND PEND- RECEIVE PEND- FREE RECEIVE CONF- RECEIVE
State 1 State 2 State 3 State 4 State 5 State 6
CONNECT PROCESS
EIBERR
+ EIBFREE
   12    Ab    Ab    Ab    Ab    Ab
CONNECT PROCESS6    ×    2    Ab    Ab    Ab    Ab    Ab
EXTRACT PROCESS7    ×    =    =    =    =    =    =
EXTRACT ATTRIBUTES    ×    =    =    =    =    =    =
SEND (any valid form)
EIBERR
+ EIBSYNRB
   Ab    13    13    13    Ab    Ab
SEND (any valid form)
EIBERR
+ EIBFREE
   Ab    12    12    12    Ab    Ab
SEND (any valid form) EIBERR    Ab    5    5    5    Ab    Ab
SEND INVITE WAIT    ×    Ab    5    Ab    Ab    Ab    Ab
SEND INVITE CONFIRM    ×    Ab    5    Ab    Ab    Ab    Ab
SEND INVITE    ×    Ab    3    Ab    Ab    Ab    Ab
SEND LAST WAIT15    ×    Ab    12    Ab    Ab    Ab    Ab
SEND LAST CONFIRM15    ×    Ab    12    Ab    Ab    Ab    Ab
SEND LAST    ×    Ab    4    Ab    Ab    Ab    Ab
SEND WAIT    ×    Ab    =    Ab    Ab    Ab    Ab
SEND CONFIRM    ×    Ab    =    514    1214    Ab    Ab
SEND    ×    Ab    =    Ab    Ab    Ab    Ab
RECEIVE
EIBERR
+ EIBSYNRB
   Ab    138    139    Ab    13    Ab
RECEIVE
EIBERR
+ EIBFREE
   Ab    128    129    Ab    12    Ab
RECEIVE EIBERR    Ab    58    59    Ab    =    Ab
RECEIVE
EIBSYNC
+ EIBFREE
   Ab    118    119    Ab    11    Ab
RECEIVE
EIBSYNC
+ EIBRECV
   Ab    98    99    Ab    9    Ab
RECEIVE EIBSYNC    Ab    108    109    Ab    10    Ab
RECEIVE
EIBCONF
+ EIBFREE
   Ab    88    89    Ab    8    Ab
RECEIVE
EIBCONF
+ EIBRECV
   Ab    68    69    Ab    6    Ab
RECEIVE EIBCONF    Ab    78    79    Ab    7    Ab
RECEIVE EIBFREE    Ab    128    129    Ab    12    Ab
RECEIVE EIBRECV    Ab    58    59    Ab    =    Ab
RECEIVE NOTRUNCATE10 EIBCOMPL10    Ab    58    59    Ab    =    Ab
RECEIVE    ×    Ab    =8    29    Ab    2    Ab
CONVERSE11 EIB flags and states as for RECEIVE
Note:
See topic Notes on the tables for footnotes.
Table 17. APPC mapped conversations at sync level 2, part 2
CONF- SEND CONF- FREE SYNC- RECEIVE SYNC- SEND SYNC- FREE FREE ROLL- BACK Command returns
State 7 State 8 State 9 State 10 State 11 State 12 State 13
   Ab    Ab    Ab    Ab    Ab    Ab    Ab
Immediately
 
   Ab    Ab    Ab    Ab    Ab    Ab    Ab Immediately
   =    =    =    =    =    =    = Immediately
   =    =    =    =    =    =    = Immediately
   Ab    Ab    Ab    Ab    Ab    Ab    Ab
After error flow detected
 
   Ab    Ab    Ab    Ab    Ab    Ab    Ab
After error flow detected
 
   Ab    Ab    Ab    Ab    Ab    Ab    Ab After error flow detected
   Ab    Ab    Ab    Ab    Ab    Ab    Ab After data flows
   Ab    Ab    Ab    Ab    Ab    Ab    Ab After response from partner
   Ab    Ab    Ab    Ab    Ab    Ab    Ab After data buffered
   Ab    Ab    Ab    Ab    Ab    Ab    Ab After data flows
   Ab    Ab    Ab    Ab    Ab    Ab    Ab After response from partner
   Ab    Ab    Ab    Ab    Ab    Ab    Ab After data buffered
   Ab    Ab    Ab    Ab    Ab    Ab    Ab After data flows
   Ab    Ab    Ab    Ab    Ab    Ab    Ab After response from partner
   Ab    Ab    Ab    Ab    Ab    Ab    Ab After data buffered
   Ab    Ab    Ab    Ab    Ab    Ab    Ab
After rollback flow detected
 
   Ab    Ab    Ab    Ab    Ab    Ab    Ab
After error detected
 
   Ab    Ab    Ab    Ab    Ab    Ab    Ab After error detected
   Ab    Ab    Ab    Ab    Ab    Ab    Ab
After sync flow detected
 
   Ab    Ab    Ab    Ab    Ab    Ab    Ab
After sync flow detected
 
   Ab    Ab    Ab    Ab    Ab    Ab    Ab After sync flow detected
   Ab    Ab    Ab    Ab    Ab    Ab    Ab
After confirm flow detected
 
   Ab    Ab    Ab    Ab    Ab    Ab    Ab
After confirm flow detected
 
   Ab    Ab    Ab    Ab    Ab    Ab    Ab After confirm flow detected
   Ab    Ab    Ab    Ab    Ab    Ab    Ab After error flow detected
   Ab    Ab    Ab    Ab    Ab    Ab    Ab When data available
   Ab    Ab    Ab    Ab    Ab    Ab    Ab When data available
   Ab    Ab    Ab    Ab    Ab    Ab    Ab When data available
States as for RECEIVE When data available
table continued......
Table 18. APPC mapped conversations at sync level 2, part 3
Command issued EIB flag returned4 ALLO- CATED5 SEND PEND- RECEIVE PEND- FREE RECEIVE CONF- RECEIVE
State 1 State 2 State 3 State 4 State 5 State 6
ISSUE CONFIRMATION    ×    Ab    Ab    Ab    Ab    Ab    5
ISSUE ERROR EIBFREE    Ab    12    12    Ab    12    12
ISSUE ERROR    ×    Ab    =    2    Ab    2    2
ISSUE ABEND    ×    Ab    12    12    12    12    12
ISSUE SIGNAL12    ×    Ab    =    =    Ab    =    =
ISSUE PREPARE
EIBERR
+ EIBSYNRB
   Ab16    13    13    13    Ab16    Ab16
ISSUE PREPARE
EIBERR
+ EIBFREE
   Ab16    12    12    12    Ab16    Ab16
ISSUE PREPARE EIBERR    Ab16    5    5    5    Ab16    Ab16
ISSUE PREPARE    ×    Ab16    1017    917    1117    Ab16    Ab16
SYNCPOINT18 EIBRLDBK    = 2 or 519 2 or 519 2 or 519    Ab20    Ab20
SYNCPOINT18    ×    =    =    5    12    Ab20    Ab20
SYNCPOINT ROLLBACK18    ×    = 2 or 519 2 or 519 2 or 519 2 or 519 2 or 519
WAIT CONVID    ×    Ab    =    5    12    Ab    Ab
FREE    ×    End    End13    Ab    End    Ab    Ab

 

Table 19. APPC mapped conversations at sync level 2, part 4
CONF- SEND CONF- FREE SYNC- RECEIVE SYNC- SEND SYNC- FREE FREE ROLL- BACK Command returns
State 7 State 8 State 9 State 10 State 11 State 12 State 13
   2    12    Ab    Ab    Ab    Ab    Ab Immediately
   12    12    12    12    12    Ab    Ab After response from partner
   2    2    2    2    2    Ab    Ab After response from partner
   12    12    12    12    12    Ab    Ab Immediately
   =    =    =21    =21    =21    Ab    Ab Immediately
   Ab 
   Ab    Ab    Ab    Ab    Ab    Ab
After response from partner
 
   Ab 
   Ab    Ab    Ab    Ab    Ab    Ab
After error detected
 
   Ab    Ab    Ab    Ab    Ab    Ab    Ab After error detected
   Ab    Ab    Ab    Ab    Ab    Ab    Ab After response from partner
   Ab20    Ab20 2 or 519 2 or 519 2 or 519    =    Ab20 After response from partner
   Ab20    Ab20    5    2    12    =    Ab20 After response from partner
2 or 519 2 or 519 2 or 519 2 or 519 2 or 519    = 2 or 519 After rollback across UOW
   Ab    Ab    Ab    Ab    Ab    Ab    Ab Immediately
   Ab    Ab    Ab    Ab    Ab    End    Ab Immediately

Initial states

A front-end transaction in a conversation must issue an ALLOCATE command to acquire a session. If the session is successfully allocated, the front-end transaction’s side of the conversation goes into allocated state (state 1).

A back-end transaction is initially in receive state (state 5).


4.
EIBSIG has been omitted. This is because its use is optional and is entirely a matter of agreement between the two conversation partners. In the worst case, it can occur at any time after every command that affects the EIB flags. However, used for the purpose for which it was intended, it usually occurs after a SEND command. Its priority in the order of testing depends on the role you give it in the application.
5.
Before a session is allocated, there is no conversation, and therefore no conversation state. The EXEC CICS ALLOCATE command does not appear in the tables. This is because each ALLOCATE gets a session to start a new conversation and does not affect any conversation that is already in progress. After ALLOCATE is successful, the front-end transaction starts the new conversation in allocated state.
6.
The back-end transaction starts in receive state after the front-end transaction has issued CONNECT PROCESS.
7.
You can issue the EXTRACT PROCESS command from the back-end transaction only.
8.
Equivalent to SEND INVITE WAIT followed by RECEIVE.
9.
Equivalent to WAIT followed by RECEIVE.
10.
RECEIVE NOTRUNCATE returns a zero value in EIBCOMPL to indicate that the user buffer was too small to contain all the data received from the partner transaction. Normally, you would continue to issue RECEIVE NOTRUNCATE commands until the last section of data is passed to you, which is indicated by EIBCOMPL = X'FF'. If NOTRUNCATE is not specified, and the data area specified by the RECEIVE command is too small to contain all the data received, CICS® truncates the data and sets the LENGERR condition.
11.
Equivalent to SEND INVITE WAIT [FROM] followed by RECEIVE.
12.
ISSUE SIGNAL sets the partner’s EIBSIG flag.
13.
Equivalent to SEND LAST WAIT followed by FREE.
14.
No data may be included with SEND CONFIRM.
15.
Although CICS allows you to terminate a sync level-2 conversation using the SEND LAST WAIT or SEND LAST CONFIRM commands, doing this deviates from the APPC architecture and should be avoided. See CICS deviations from the APPC architecture.
16.
This results, not in an ATCV abend, but in an INVREQ return code.
17.
Although ISSUE PREPARE can return with the conversation in either syncsend state, syncreceive state, or syncfree state, the only commands allowed on that conversation following an ISSUE PREPARE are SYNCPOINT and SYNCPOINT ROLLBACK. All other commands abend ATCV.
18.
The commands SYNCPOINT and SYNCPOINT ROLLBACK do not relate to any particular conversation. They are propagated on all the conversations that are currently active for the task, including MRO conversations.
19.
The state of each conversation after rollback depends on several factors:

A conversation may be in free state after rollback if it has been terminated in one of these ways:

After a syncpoint or rollback, it is advisable to determine the conversation state before issuing any further commands against the conversation.

20.
This causes an ASP2 abend, not an ATCV.
21.
Where APPC transaction routing is taking place, the ISSUE SIGNAL command is invalid in this state.

[[ Contents Previous Page | Next Page Index ]]