Backout query request (TYPE=BACKOUT)

You can use the Backout query (DSPAPI FUNC=QUERY TYPE=BACKOUT) request to retrieve backout information from the RECON data set for a specific subsystem or all subsystems.

Syntax for the TYPE=BACKOUT query request

Read syntax diagramSkip visual syntax diagramnameDSPAPIFUNC=QUERYTYPE=BACKOUTTOKEN= addressSSID=*SSID= subsystem_IDSSID= subsystem_ID*MF=SMF=(S, list)MF=(L, list)MF=(M, list,COMPLETE,NOCHECK)MF=(E, list,COMPLETE,NOCHECK)OUTPUT= outputSUBPOOL=0SUBPOOL= numberRETCODE= returncodeRSNCODE= reasoncodeVERSION=2.0VERSION= number

Parameters for the TYPE=BACKOUT query request

name
If used, begins in column 1.
TYPE=BACKOUT
Specifies that backout information is requested.
TOKEN=symbol | (2 - 12)
Specifies the address of a 4-byte field that was returned on the FUNC=STARTDBRC request.
SSID=* | symbol | symbol* | (2 - 12)
Specifies the subsystem name for the backout being queried. You can use the wildcard keyword * (an asterisk) alone to request information about all groups (SSID=*, which is the default). You can also add it at the end of a name to query all subsystems whose names match the pattern. In this case, the asterisk must be preceded by at least one alphabetic character.
MF=S | L | M | E
Specifies the macro form of the request.
OUTPUT=output | (2 - 12)
Required parameter that specifies a field to receive a pointer to the first block of backout information blocks.

The output address is 0 if no output was built. This can occur if nothing in the RECON satisfies the request or if an error occurs before any output could be built.

The storage for the output blocks is not pre-allocated by the caller. DBRC acquires storage from the specified subpool for these blocks. The caller must free this storage using the Buffer Release service (DSPAPI FUNC=RELBUF) and specify the returned output address.

SUBPOOL= 0 | number
Specifies the subpool number for the storage being obtained. If not specified, the default is the subpool specified by the FUNC=STARTDBRC request. Otherwise, subpool 0 is the default.
RETCODE=returncode | (2-12)
If specified as a symbol, specifies the label of a word of storage to receive the return code. If specified as a register, the register must contain the address of a word of storage to receive the return code. Regardless of whether RETCODE is specified, register 15 contains the return code.
RSNCODE=reasoncode | (2-12)
If specified as a symbol, the symbol must be the label of a word of storage to receive the reason code. If specified as a register, the register must contain the address of a word of storage to receive the reason code. Regardless of whether RSNCODE is specified, register 0 contains the reason code.
VERSION=2.0 | number
Specifies the version number of the parameter list that is generated by this macro.

To use the parameters associated with a version, you must specify the number of that version or a later version. If you specify an earlier version level, the parameter is not accepted by macro processing, and an error message is issued at assembly time. If parameters have a version dependency, the parameter descriptions with each request type identify the version number required.

Valid version numbers for the FUNC=QUERY TYPE=BACKOUT request are 1.0 and 2.0.

Return and reason codes for the TYPE=BACKOUT query request

Table 1. Return and reason codes for TYPE=BACKOUT query requests
Code type Return codes Reason codes Meaning
  X'00000000' X'00000000' Request completed successfully.
Warning X'00000008' X'D87000001' No backout records exist.
Severe error X'0000000C' X'C9000001' Invalid TOKEN. The TOKEN block passed to the API is not recognized as a TOKEN created by a FUNC=STARTDBRC call.
  X'0000000C' X'C900000A' The TCB address is not the same as the TCB address under which the STARTDBRC service was issued.
  X'0000000C' X'D8700100' Security error. SAF or the DBRC Command Authorization exit routine (DSPDCAX0) determined that the user is not authorized to perform the request.
Storage error X'00000028' X'D87000001' Error obtaining storage for BACKOUT block.
  X'00000028' X'D91000001' An error occurred processing the request. DBRC will release storage that was obtained up to this point. However, another error was encountered during the attempt to release storage.
Internal error X'0000002C' X'D8000001' RECON open failure.
  X'0000002C' X'D8700001' Failure locating the first or the specified backout record.
  X'0000002C' X'D8700002' Failure locating the next backout record.
Parameter error X'00000030' X'C9000001' The function (FUNC) specified in the parameter list passed to the API is invalid.
  X'00000030' X'C9000002' Invalid TOKEN field address. The address of the field containing the API TOKEN failed validity checking. The address specifies storage not owned by the calling program.
  X'00000030' X'C9000003' Invalid RETCODE field address. The address of the field to contain the API RETCODE failed validity checking. The address specifies storage not owned by the calling program.
  X'00000030' X'C9000004' Invalid RSNCODE field address. The address of the field to contain the API RSNCODE failed validity checking. The address specifies storage not owned by the calling program.
  X'00000030' X'C9000005' Invalid OUTPUT field address. The address of the field to contain the OUTPUT address failed validity checking. The address specifies storage not owned by the calling program.
  X'00000030' X'C9000010' Invalid SSID field address. The address of the field containing the SSID failed validity checking. The address specifies storage not owned by the calling program.
  X'00000030' X'D80000001' Missing or invalid OUTPUT parameter.
  X'00000030' X'D80000002' Invalid value specified for TYPE parameter.
  X'00000030' X'D8700100' When using a wildcard, at least one alphabetic character must precede the asterisk.
  X'00000030' X'D8700101' When using a wildcard, the asterisk must be the last character.

Output for TYPE=BACKOUT QUERY request

Figure 1. Format of the output from QUERY TYPE=BACKOUT output request

DSECT of DSPAPQBO

The following example is a sample DSECT describes in detail the fields of the storage blocks and their interrelationship.

  OFFSET   OFFSET
 DECIMAL     HEX  TYPE        LENGTH  NAME (DIM)       DESCRIPTION
======== ======== ========= ========  ==============   ===========================
       0      (0) STRUCTURE       48  DSPAPQBO
       0      (0) CHARACTER        8   APQBO_SSID      Subsystem identifier
       8      (8) UNSIGNED         4   APQBO_FIRSTUOR  Offset of first UOR entry
      12      (C) UNSIGNED         4   APQBO_LASTUOR   Offset of last UOR entry
      16     (10) CHARACTER       12   APQBO_TIMEFIRST Earliest UOR time
      28     (1C) CHARACTER       12   APQBO_TIMELAST  Latest UOR time
      40     (28) BIT(8)           1   APQBO_FLAGS     Backout flags
                  1... ....             APQBO_SAVER    SAVUOR call during restart
      41     (29) CHARACTER        3   *               Reserved
      44     (2C) SIGNED           4   APQBO_UORCOUNT  Number of UORs

      ============================================================================
      The following structure maps the unit of recovery entries.
      There is one such entry for each unit of recovery (that is, there
      are apqbo_UORcount entries). Each unit of recovery entry
      contains the offset within the backout block to the previous
      and following entries. Field apqbo_PrevUOR is the offset of
      the previous entry and apqbo_NextUOR is the offset of the
      following entry. For the first unit of recovery (UOR) entry,
      apqbo_PrevUOR will be zero. Similarly, apqbo_NextUOR will be
      zero for the last entry. Addressability to the first UOR entry
      is given by:
          rfy apqbo_UORentry based(addr(DSPAPQBO) + apqbo_FirstUOR)
      Addressability to the last UOR entry is given by:
          rfy apqbo_UORentry based(addr(DSPAPQBO) + apqbo_LastUOR)
      Addressability to the next UOR entry, if one exists (that is:
      apqbo_NextUOR not equal to 0), is given by:
          rfy apqbo_UORentry based(addr(DSPAPQBO) + apqbo_NextUOR)
      Similarly, to address the previous entry (when apqbo_PrevUOR
      not equal to 0):
          rfy apqbo_UORentry based(addr(DSPAPQBO) + apqbo_PrevUOR)
      Once addressability has been established to a UOR entry,
      addressability to the ith database for this UOR is given by:
          rfy apqbo_DBent
                      based(addr(apqbo_UORentry) + apqbo_DBoffset
                            + (i-1) apqbo_DBLength)
      ============================================================================
  OFFSET   OFFSET
 DECIMAL     HEX  TYPE        LENGTH  NAME (DIM)     DESCRIPTION
======== ======== ========= ========  ============== =============================
       0      (0) STRUCTURE       64  APQBO_UORENTRY Unit of Recovery entry
       0      (0) CHARACTER       64  APQBO_PREFIX   Prefix section
       0      (0) UNSIGNED         4  APQBO_NEXTUOR  Offset of next UOR entry
       4      (4) UNSIGNED         4  APQBO_PREVUOR  Offset of previous UOR entry
       8      (8) UNSIGNED         4  APQBO_DBOFFSET Offset to DB entries
      12      (C) CHARACTER       12  APQBO_UORTIME  Time stamp for this UOR
      24     (18) CHARACTER        8  APQBO_UORPSB   PSB name
      32     (20) BIT(16)          2  APQBO_UORFLAGS 
                  1... ....           APQBO_DEFBO    Deferred backout - dynamic 
                                                      backout failure
                  .1.. ....           APQBO_INFLT    Inflight UOR
                  ..1. ....           APQBO_INDOU    Indoubt UOR
                  ...1 ....           APQBO_BMP      BMP UOR
                  .... 1...           APQBO_BOCAN    BBO identified candidate
                  .... .1..           APQBO_COLDN    Cold start ended for UOR
                  .... ..1.           APQBO_BBOK     Backed out OK by BBO
                  .... ...1           APQBO_CMD      UOR modified by command
      33     (21) 1... ....           APQBO_BATCH    Batch IMS UOR
      34     (22) CHARACTER        6  *              Reserved
      40     (28) CHARACTER       16  APQBO_RTOKN    Recovery token
      40     (28) CHARACTER        8  APQBO_RTSSID   SSID for this token
      48     (30) CHARACTER        8  APQBO_UORID    Unique UOR ID
      56     (38) SIGNED           4  APQBO_DBCOUNT  Number of DBs for this UOR
      60     (3C) UNSIGNED         2  APQBO_DBLENGTH Length of each DB entry
      62     (3E) CHARACTER        2  *              Reserved
 
 OFFSET   OFFSET
 DECIMAL     HEX  TYPE        LENGTH  NAME (DIM)     DESCRIPTION
======== ======== ========= ========  ============== ===============================
       0      (0) STRUCTURE       16  APQBO_DBENT    Database entry
       0      (0) CHARACTER        8  APQBO_DBNAME   Database name
       8      (8) BIT(8)           1  APQBO_DBFLAGS  Flags
                  1... ....           APQBO_DBOUT    UOR backed out for this DB
                  .1.. ....           APQBO_DBDEF    Dyn backout failure this DB
       9      (9) CHARACTER        7  *              Reserved

CONSTANTS

  LEN  TYPE           VALUE          NAME            DESCRIPTION
=====  =========  =================  =============== ===============================
    8  CHARACTER   DSPAPQBO          APQBO_EYECATCHER