SYMCHKP command
The Symbolic Checkpoint (SYMCHKP) command
is used to issue a symbolic checkpoint and to end a logical unit of
work.
Format
Options
- ID(chkpid)
- Is the name of an 8-byte area in your program containing the checkpoint ID. If you are using PL/I, specify this parameter as a pointer to a major structure, an array, or a character string.
- ID('literal')
- Is the 8-byte checkpoint ID, enclosed in quotation marks.
- AREA#(area#)
- Specifies the areas in your program you want IMS to checkpoint. You do not need to specify
any area to checkpoint; however, you cannot specify more than seven
areas. If you specify more than one area, you must include all intervening
areas. For example, if you specify AREA3, you must also specify AREA1
and AREA2. The areas you specify using the
SYMCHKPcommand must be the same and in the areas specified in theXRSTcommand. - LENGTH#(expression#)
- Can be any expression in the host language that converts to the integer data type; you can specify either a number or a reference to a halfword containing a number. For IBM® COBOL for z/OS® & VM (or VS COBOL II), PL/I, or assembler language programs, LENGTH1 to LENGTH7 are optional. For COBOL programs that are not compiled with the IBM COBOL for z/OS & VM (or VS COBOL II) compiler, LENGTHx (where x is 1 to 7) is required for each AREAx (where x is 1 to 7) that you specify.
Usage
The two kinds of commands
that allow you to make checkpoints are: the CHKP,
or basic Checkpoint command, and the SYMCHKP, or
Symbolic Checkpoint command.
Batch programs can use either the symbolic or the basic command.
Both checkpoint commands make it possible for you to commit your program's changes to the database and to establish places from which the program can be restarted, should it terminate abnormally. You must not use the CHKPT=EOV parameter on any DD statement to take an IMS checkpoint.
Refer
to IMS
Version 15.4 Application Programming for
an explanation of when and why you should issue checkpoints in your
program. Both commands cause a loss of database position at the time
the command is issued. Position must be reestablished by a GU command
or other method of establishing position.
In addition to committing your program's changes to the database and establishing places from which your program can be restarted, the Symbolic Checkpoint command:
- Works with the Extended Restart (
XRST) command to restart your program if it terminates abnormally. - Can save as many as seven data areas in your program, which are restored when your program is restarted. You can save variables, counters, and status information.
Example
EXEC DLI SYMCHKP
ID(chkpid)
AREA1(area1) LENGTH1(expression1)
…
AREA7(area7) LENGTH7(expression7)This
example shows how to issue a symbolic checkpoint and to end a logical
unit of work with a SYMPCHKP command.
Restrictions
Restrictions for
the SYMCHKP command:
- If you issue this command, you must also issue the
XRSTcommand. - You cannot use this command in a CICS® program.
- To use the
SYMCHKPcommand you must first define an I/O PCB for your program. - You cannot reestablish position in the midst of nonunique keys or nonkeyed segments.
- The areas you specify using the
SYMCHKPcommand must be the same, and in the same order, as the areas specified in theXRSTcommand. - If you specify more than one area, you must specify all intervening areas. For example, if you specify AREA3, you must also specify AREA1 and AREA2.
- When specifying expression1 with a COBOL program that is not compiled with the IBM COBOL for z/OS & VM (or the VS COBOL II) compiler, LENGTHx (where x is 1 to 7) is required for each AREAx (where x is 1 to 7) that you specify.
