SYMCHKP command

The Symbolic Checkpoint (SYMCHKP) command is used to issue a symbolic checkpoint and to end a logical unit of work.

Format

Read syntax diagramSkip visual syntax diagramEXECDLISYMCHKPID( chkpid)ID(' literal')AREA #( area#)LENGTH #( expression#)

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 SYMCHKP command must be the same and in the areas specified in the XRST command.
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)
Explanation

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 XRST command.
  • You cannot use this command in a CICS® program.
  • To use the SYMCHKP command 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 SYMCHKP command must be the same, and in the same order, as the areas specified in the XRST command.
  • 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.