DBUTIL command in JCL

The DBUTIL command is executed from JCL and runs as a BMP type program in IMS.

Syntax:

//stepname PGM=pgmname,PARM=(BMP,DBUTIL,psbname)
//SYSIN      DD *
jobcardstatements

Parameters:

psbname
The PSB name for the IMS database. Because DBUTIL issues DL/I calls like any other application, the PCB must specify appropriate processing options for the calls applied via the control statement file.
DLIcall
A DL/I call to apply to the IMS database specified by psbname.
DBUTILspecialfunction
A DBUTIL special function to apply to the IMS database specified by psbname.
jobcardstatements
These statements include DL/I database calls and/or DBUTIL special functions. Each statement must be formatted as follows:
Columns 1 - 4
Positions one through four contain the DL/I call function or DBUTIL special function. You can specify any supported DL/I database call, such as GHU, REPL, DLET, or ISRT, or you can specify a DBUTIL special function. See DBUTIL special functions for a list of special functions and a description of each.
Column 5
A non-blank character in column 5 indicates the next line is a continuation of this line. This line becomes one of a set of records that is grouped to form one DL/I call. You cannot use this continuation to continue an IO function record.
Columns 6 - 32768
The data associated with the function:
  • For DL/I call functions and their continuation records, this is an SSA
  • For the IO function, this is the I/O area for ISRT, REPL and DLET calls. Variable length segments must contain the length code as the first two bytes of the data segment.
  • For the DBUTIL special functions, this is any data required by the function.
Example Job Card Statements
*Record Columns
*---+----10---+----20---+----30---+----40
*Set the PCB number
PCB= 03
*
*Issue get unique call with one SSA
GU   TESTSEG1
*
*Issue get unique call with three SSAs.
*(Note the continuation)
GU  XTESTSEG1*-(SEGKEY01 =10)
    XTESTSEG2*-(SEGKEY02 =20)
     TESTSEG3*-(SEGKEY03 =2000)
*
*Issue insert call with SSAs
ISRTXTESTSEG1*--(SEQFIELD =AA)
    XTESTSEG2*--(SEQFIELD =BBBB)
    XTESTSEG3
IO   NEWSEGMENTDATA

Example JCL for DBUTIL

//DBUTILTEST  EXEC PGM=DFSRRC00,PARM=(BMP,DBUTIL,SASTEST)
//SYSOUT     DD SYSOUT=*
//IMSTRACE   DD SYSOUT=*
//SYSIN      DD *
PCB= 02
ISRTXPOF0ROOT
IO   000000000000000000000000100 POF0ROOT 100
ISRTXPOF0LEG
IO   0100 POF0LEG 0100
ISRTXPOF0ALOD
IO   000000000000000000000000001 POF0ALOD 1
ISRTXPOF0ALOD
IO   000000000000000000000000002 POF0ALOD 2
ISRTXPOF0ALOD
IO   000000000000000000000000003 POF0ALOD 3
ISRTXPOF0COMP
IO   00000 POF0COMP 0 CORRECT
ISRTXPOF0COMP
IO   00001 POF0COMP 1 WRONG
ISRTXPOF0COMP
IO   00002 POF0COMP 2
ISRTXPOF0COMP
IO   00003 POF0COMP 3
ISRTXPOF0LEG
IO   0200 POF0LEG 0200
ISRTXPOF0ROOT
IO   000000000000000000000000200 POF0ROOT 200
PCB= 02
FREE
GU   XPOF0ROOT*D--(POFKEY   =000000000000000000000000100)
        XPOF0LEG *PD-(LEGNO    =0100)
          POF0ALOD*---
GNP  POF0ALOD*---
GNP  POF0ALOD*---
GNP  POF0ALOD*---
GNP  POF0COMP*F--(COMPKEY  >     )
/*
//*