SETU command

The Set a Backout Point Unconditionally (SETU) command is identical to the SETS command except that it does not get rejected if unsupported PCBs are in the PSB or if the program uses an external subsystem.

Format

Read syntax diagramSkip visual syntax diagramEXECDLISETU TOKEN( mytoken)AREA( data_area)

Options

TOKEN(mytoken)
A 4-byte token associated with the current processing point.
AREA(data_area)
The name of the area to be restored to the program when a SETU command is issued. The first 2 bytes of the data-area field contain the length of the data-area, including the length itself. The second 2 bytes must be set to X'0000'.

Usage

You can use the SETU command to define multiple points at which to preserve the state of the DL/I databases and to return to these points later. For example, you can use the SETU command to allow your program to handle situations that can occur when PSB scheduling completed without all of the referenced DL/I databases being available.

The SETU command applies only to DL/I full-function data bases. If a logical unit of work (LUW) is updating types of recoverable resources other than full-function databases, such as VSAM files, the SETU command has no effect on the non-DL/I resources. The backout points are not CICS® commit points; they are intermediate backout points that apply only to DBCTL resources. It is up to you to ensure the consistency of all the resources involved.

Example

EXEC DLI SETU TOKEN(mytoken) AREA(data_area)

Explanation

This example shows how to specify the SETU command.

Restrictions

Restrictions for the SETU command:

  • You cannot use this command in a CICS program.
  • To use this 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.
  • You cannot use this command when the system log is stored on direct access storage and dynamic backout has been specified. You must also specify BKO=Y in the parm field of your JCL when you execute the program.