Customizing after installation
Because of its design, the QUICKSTART for MVS (QSM) product can be easily customized. The QUICKSTART Checkpoint Routine, which is delivered as program source code, is inherently flexible and customizable. Many QUICKSTART customers have added their own extensions to the QUICKSTART product through the CKPT-RTN to meet any particular standards or requirements. For example, some customers have added logic to dynamically alter the checkpoint frequency based on time of day for applications that can run during either the batch or online processing windows.
All DBMS accesses needed by QUICKSTART reside in CKPT-RTN. This allows its simple migration to new programming languages, new or enhanced data languages, new techniques, additional DBMSs or new DBMS features.
If needed, the customer can create numerous versions of CKPT-RTN, such that for every unique environmental permutation there exists a CKPT-RTN version. At a minimum, all QUICKSTART customers should ensure that these versions of CKPTRTN include code to perform the following:
- Create a row/record within the QUICKSTART Checkpoint Control Table for those application programs which are executing under QUICKSTART for the first time, and for which no such record has been previously prepared,
- CALL the QUICKSTART program “BTCHCKPT” to perform all checkpointing and other critical tasks,
- Update the QUICKSTART Checkpoint Control Table when BTCHCKPT has determined that a checkpoint is to be taken, such that critical synchronization information can be recorded,
- Issue any necessary DBMS synchronization point request, such as “COMMIT”.
Through CKPT-RTN, special routines can be invoked at program Initialization and Termination to track various statistics.
An interesting example is of a customized routine similar to the QUICKSTART checkpoint Frequency regulator which “forces” checkpoints according to certain times of the day. Another example is to execute a customer's own routine to evaluate System Resource Utilization levels, and in that way, control the need for checkpointing, based on certain thresholds.