Sync point rollback in response to EXEC CICS SYNCPOINT

Figure 1 shows the same distributed processes as the those that are shown in Figure 1. Six transactions are engaged in related conversations. Transaction A (the first initiator) has two conversations: one with transaction B, and the other with transaction D. Transaction B has three conversations: one on its principal facility (with transaction A), another with transaction C, and another with transaction E. Transactions C and E each have one conversation: on their principal facility (with transaction B). Transaction D has two conversations: one on its principal facility (with transaction A), and the other with transaction F. Transaction F has one conversation: on its principal facility (with transaction D).
Figure 1. Rollback during distributed sync pointing
Rollback during distributed sync pointing

As is shown in Figure 1, transaction A, while in send state (state 2), issues the EXEC CICS® SYNCPOINT command, and CICS initiates a chain of events. Here, however, transaction E has detected an error that makes it unable to commit, and it issues EXEC CICS SYNCPOINT ROLLBACK when it detects that the conversation on its principal facility is in syncreceive state (state 9, EIBSYNC is also set). This causes any changes that transaction E has made to be backed out, and initiates a distributed rollback.

Transaction D senses that the conversation on its principal facility is in rollback state (state 13), and that transactions B, C and A are rolled back (EIBRLDBK is also set). Transaction D therefore issues an EXEC CICS SYNCPOINT ROLLBACK command. Transaction F too senses that the conversation on its principal facility is in rollback state, and issues an EXEC CICS SYNCPOINT ROLLBACK command. The distributed rollback is now complete.