CICS deviations from the APPC architecture

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.

CICS allows a sync level-2 conversation to be terminated using the SEND LAST WAIT or SEND LAST CONFIRM commands. However, doing this is a deviation from the APPC architecture and should be avoided. Figure 47 illustrates the problems that can be caused by not syncpointing a sync level-2 conversation.

Figure 47. Losing data integrity on a sync level-2 conversation.

In this example, transaction AAAA in communicating with transaction BBBB:

  1. Transaction AAAA issues a CONNECT PROCESS command, specifying SYNCLEVEL(2).
  2. Transaction AAAA issues a SEND command; the attach header and data is transmitted, and transaction BBBB is started.
  3. Transaction BBBB issues a RECEIVE command.
  4. A serious error occurs in transaction BBBB.
  5. Transaction BBBB issues an ISSUE ABEND command. The transaction is suspended pending the receipt of a change direction or end bracket from transaction AAAA.
  6. Transaction AAAA issues a SEND LAST WAIT command, with no data. The end bracket is transmitted to transaction BBBB.
  7. Transaction BBBB is resumed; the incoming end bracket puts the conversation into free state.
  8. From this point, the two transactions execute independently.
  9. Transaction AAAA frees its conversation.
  10. Transaction AAAA ends; its changes are committed.
  11. Transaction BBBB issues a SYNCPOINT ROLLBACK command. Its changes are backed out.
 This figure illustrates a scenario in which data integrity can be lost on a sync-level 2 conversation.

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.

Effects of CICS deviations on the transaction programmer

Where CICS deviates from the APPC architecture, there may be some effect on transaction programs running on products other than CICS and having conversations with CICS transactions. The effects can be avoided by using the following programming conventions (the verbs and return codes referred to here are described in SNA Transaction Programmer’s Reference Manual for LU Type 6.2):

[[ Contents Previous Page | Next Page Index ]]