Syncpoint exchanges

Consider the following example:

Syncpoint example:
An order-entry transaction is designed so that, when an order for an item is entered from a terminal:
  1. An inventory file is queried and decremented by the order quantity.
  2. An order for dispatch of the goods is written to an intrapartition transient data queue.
  3. A synchronization point is taken to indicate the end of the current UOW.

In a single CICS® system, the syncpoint causes steps 1 and 2 both to be committed.

The same result is required if the inventory file is owned by a remote system and is accessed by means of, for example, CICS function shipping. This is achieved in the following way:
  1. When the local transaction issues the syncpoint request, CICS sends a syncpoint request to the remote transaction (in this case, the CICS mirror transaction).
  2. The remote transaction commits the change to the inventory file and sends a positive response to the local CICS system.
  3. CICS commits the change to the transient data queue.

During the period between the sending of the syncpoint request to the remote system and the receipt of the reply, the local system does not know whether the remote system has committed the change. This period is known as the indoubt period, as illustrated in Figure 1.

If the intersystem session fails before the indoubt period is reached, both sides back out in the normal way. After this period, both sides have committed their changes. If, however, the intersystem session fails during the indoubt period, the local CICS system cannot tell whether the remote system committed or backed out its changes.