SETS command
The Set a Backout Point (SETS
) command
is used to define points in your application at which to preserve
the state of the DL/I databases before initiating a set of DL/I requests
to perform a function. Your application can issue a ROLS
command
later if it cannot complete the function.
Format
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
SETS
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 SETS
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 SETS
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 SETS
command
applies only to DL/I full-function databases. If a logical unit of
work (LUW) is updating types of recoverable resources other than full-function
databases, for example VSAM files, the SETS
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 SETS
TOKEN(mytoken) AREA(data_area)
This
example shows how to specify the SETS
command.
Restrictions
Restrictions for
the SETS
command:
- 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.
- In batch, you can only 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.
- It is rejected when the PSB contains a DEDB or MSDB PCB, or when the call is made to a DB2® database.
- It is valid, but not functional, if unsupported PCBs exist in the PSB or if the program uses an external subsystem.