MainframeSupports
tip week 44/2005:

Some of you may be familiar with the DB2 command -DIS UTIL. This command will show you the executing or failed IBM DB2 utilities. There is not a lot of output from this command and especially annoying is that the jobname of the job executing the utility is missing. A good thing about -DIS UTIL is that everybody can execute it and the command shows you what it is doing in terms of a PHASE and how much work it has done whitin the PHASE in terms of a COUNT. These informations aren't available anywhere else.

Some years ago I got pretty frustrated about all the missing informations in -DIS UTIL so I started to look for alternatives. And I found one. There is an IBM DB2 utility called DIAGNOSE and it can (among other things) show you the contens of the tablespace SYSUTIL in the database DSNDB01. No tablespaces in DSNDB01 can be accessed using SQL, so you have to use other tools. The tablespace SYSUTIL contains the informations shown by -DIS UTIL and a lot of other informations that DIAGNOSE can show you. You may start DIAGNOSE using the following step:

//DB2UTIL  EXEC PGM=DSNUTILB,PARM='SSID,DIAGNOSE.SYSUTIL'
//SYSPRINT DD SYSOUT=*
//SYSIN    DD *
    DIAGNOSE DISPLAY SYSUTIL
/*

As I already mentioned DIAGNOSE is able to do a lot of different things, but a DIAGNOSE DISPLAY SYSUTIL displays the complete contens of DSNDB01.SYSUTIL. You cannot limit the display to a specific utility as you can with -DIS UTIL. The manual says that you need a lot of authorization to execute a DIAGNOSE, but I haven't had any trouble using DIAGNOSE DISPLAY SYSUTIL and my guess is that no special authority is needed just like for -DIS UTIL.

The output to SYSPRINT is unfortunately quite substantial for every executing or failed utility and consists of a readable part called SYSUTIL JOB INFORMATION and two hexadecimal dumps. The dumps are not interesting. In the readable part there is a lot of much more interesting information like jobname (USUJOBNM=), databasename (USUDBNAM=) and tablespacename or indexspacename (USUSPNAM=). There is more information which either is displayed by -DIS UTIL or I haven't been able to decode. I am still missing a reasoncode telling me why the utility has failed. The reasoncode must still be located in the utility output from the failing job.

Previous tip in english        Sidste danske tip        Tip list