DUPLEX (with backup) on Coupling facility
If you define both checkpoint data sets on different structures within different Coupling facilities, performance should be increased significantly. The primary data set is specified by the CKPT1= parameter on the CKPTDEF initialization statement and the duplex data set is specified by the CKPT2= parameter on that same statement:
CKPTDEF CKPT1=(STRNAME=strname,INUSE=YES),
CKPT2=(STRNAME=strname,INUSE=YES),
MODE=DUPLEX,DUPLEX=ON
The CKPT1 data set is the primary data set, that is, it is read from and written to at every intermediate read and final write of the checkpoint by all members in your multi-access spool configuration. The duplex data set, CKPT2, is updated less frequently (that is, once for every 4 to 10 writes to the primary). If the primary data set suffers an error, the duplex can provide either an exact duplicate of the primary or a very similar, almost current (depending on when it was last updated) copy, of the checkpoint data.
- A If JESA gains control of the checkpoint (Figure 1), it reads from CKPT1 and
- B Does the primary write to CKPT2.
- C Intermediate writes are to CKPT1 with every tenth write (if there are 10 or more) also written to CKPT2.
- D The final checkpoint write (before
JESA releasing its RESERVE) is to CKPT1.
Note that if the checkpoint data set resides on a Coupling facility structure rather than on a DASD volume, JESA access to the checkpoint is serialized through the Coupling facility lock; the hardware RESERVE is not obtained or released.
- E It, too, reads from CKPT1, and
- F Performs the primary write to CKPT2.
- G Intermediate writes are to CKPT1 with every tenth write to CKPT2, and
- H SYSB's final write is to CKPT1.
Even if the primary checkpoint data set, CKPT1, is updated every checkpoint cycle, and the duplex, CKPT2, is updated on a regular basis, when an error occurs on the primary checkpoint data set, a more current copy of the checkpoint might be available to the member that experienced the error.
Each member holds an “in-storage” copy of the checkpoint, which it uses to update the checkpoint. This in-storage data set can be copied into the “replacement checkpoint”, NEWCKPTn, data set if one has been predefined (by initialization statement), or dynamically added (by operator command), or in response to checkpoint reconfiguration dialog messages. However, if the member holding this up-to-date in-storage copy has also suffered a failure, the most up-to-date copy of the checkpoint available would be defined by the duplex checkpoint data set.