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 > )
/*
//*