Sample COBOL program
This topic explains how the QUICKSTART Transparent mode sample program (TMDEMO) functions and demonstrates how to add QUICKSTART by modifying the JCL. Transparent mode requires no changes to the COBOL program to perform checkpointing and restarting. Checkpointing is invoked automatically at each COBOL READ. For information about executing the TMDEMO program, see Executing-the-TMDEMO-program.
Locate member TMDEMO in the QUICKSTART sample library (QUICKSTART.SAMPLIB). This member is referenced in the following figure:
PROGRAM-ID. TMDEMO.
*****************************************************************
* SAMPLE PROGRAM THAT CAN BE USED TO TEST QUICKSTART'S
* TRANSPARENT MODE. IT READS AN 80 CHARACTER INPUT FILE
* (DD=INFILE) AND CREATES AN 80 CHARACTER OUTPUT FILE
* (DD=OUTFILE) BY USING A FILE WITH AT LEAST 30000 RECORDS.
*
* THE DB2 CHECKPOINT ROUTINE IS INVOKED IMPLICITLY AT EACH
* READ OF THE INPUT FILE.
*****************************************************************
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. IBM-370.
OBJECT-COMPUTER. IBM-370.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT INFILE ASSIGN TO INFILE.
SELECT OUTFILE ASSIGN TO OUTFILE.
I-O-CONTROL.
DATA DIVISION.
FILE SECTION.
FD INFILE
RECORD CONTAINS 80 CHARACTERS
BLOCK CONTAINS 0 RECORDS.
01 IN-REC PIC X(80).
FD OUTFILE
RECORD CONTAINS 80 CHARACTERS
BLOCK CONTAINS 0 RECORDS.
01 OUT-REC PIC X(80).
WORKING-STORAGE SECTION.
01 WORK-EYE PIC X(14) VALUE 'PROGRAM=TMDEMO'.
01 EOF-FLAG PIC X(1) VALUE 'N'.
01 REC-CNTR PIC 9(7) VALUE 0.
PROCEDURE DIVISION.
DISPLAY 'RECORD COUNTER=' REC-CNTR.
OPEN INPUT INFILE.
OPEN OUTPUT OUTFILE.
PERFORM LUW UNTIL EOF-FLAG = 'Y'.
CLOSE INFILE.
CLOSE OUTFILE.
DISPLAY 'PROGRAM TERMINATING AFTER ' ,
REC-CNTR, ' RECORDS.'.
GOBACK.
LUW.
READ INFILE
AT END MOVE 'Y' TO EOF-FLAG.
IF READ-FLAG IS NOT = 'Y'
ADD 1 TO REC-CNTR
MOVE IN-REC TO OUT-REC
WRITE OUT-REC
END-IF.
EXIT
To demonstrate how to add QUICKSTART, this example shows the program reading in a sequential file (INFILE), recording changes on an increment counter, and writing an output file (OUTFILE). The program performs no DB2 access, but DB2 is used by QUICKSTART to support the checkpoint restart process. You can also execute this program by using the QUICKSTART NODBMS mode.
There are no explicit references to QUICKSTART in the program. The LUW within the program is referenced by the LUW paragraph consisting of a READ file, an increment counter, and a WRITE record. Based on the READ of the input file,QUICKSTART will implicitly issue checkpoints as shown in the previous figure.
Related topic