Normal termination of a conversation

The GDS SEND LAST command is used to terminate a conversation. It should be used in conjunction with either the WAIT or CONFIRM options or the SYNCPOINT command (depending on the conversation sync level).

A distributed transaction should not end a conversation by issuing an EXEC CICS RETURN command, but instead follow the sequence of commands shown. The issue of an EXEC CICS RETURN could lead to one or both transactions ending abnormally.

Table 1. Terminating commands for different sync levels
Sync level Command sequence
0
GDS SEND LAST WAIT
GDS FREE
1
GDS SEND LAST CONFIRM
GDS FREE
2
GDS SEND LAST
SYNCPOINT
GDS FREE
Note: It is important that the GDS SEND LAST command for sync level 2 is not accompanied by WAIT or CONFIRM because either of these options will cause the conversation to end before the subsequent syncpoint has propagated to the partner transaction. This may mean that protected resources of one transaction could be committed while those in the partner transaction could be backed out. The resulting state errors may also lead to the session being unbound.