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.
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:
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 |
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 |
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 |
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 |
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 |
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...... |
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 |
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 |
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).
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.