CICS deviations from the APPC architecture
CICS® deviates from the APPC architecture in a few ways.
CICS allows EXEC CICS commands to be issued on APPC conversations when a backout (rollback) is required but the conversation is not in rollback state (state 13).
When a session is being allocated, the back-end CICS system checks the incoming bind request for valid combinations of CNOS (change number of sessions) and parallel-sessions indicators. If CICS finds that parallel-sessions is specified but CNOS is not, it sends a negative response to the bind request.
- Transaction AAAA issues a CONNECT PROCESS command, specifying SYNCLEVEL(2).
- Transaction AAAA issues a SEND command; the attach header and data is transmitted, and transaction BBBB is started.
- Transaction BBBB issues a RECEIVE command.
- A serious error occurs in transaction BBBB.
- Transaction BBBB issues an ISSUE ABEND command. The transaction is suspended pending the receipt of a change direction or end bracket from transaction AAAA.
- Transaction AAAA issues a SEND LAST WAIT command, with no data. The end bracket is transmitted to transaction BBBB.
- Transaction BBBB is resumed; the incoming end bracket puts the
conversation into free state.
From this point, the two transactions execute independently.
- Transaction AAAA frees its conversation.
- Transaction AAAA ends; its changes are committed.
- Transaction BBBB issues a SYNCPOINT ROLLBACK command. Its changes are backed out.

Because transaction AAAA ends the conversation using the SEND LAST WAIT command, transaction BBBB cannot inform it that an error has occurred. The ISSUE ABEND command causes the backout-required condition to be raised in transaction BBBB; so a SYNCPOINT ROLLBACK is needed. Transaction AAAA commits changes to its resources and data integrity is lost.
The resulting state errors may also lead to the session being unbound.