MainframeSupports
tip uge 08/2002:

De fleste af jer er sandsynligvis bekendt med DB2 kommandoen -DIS UTIL som viser, hvilke DB2 utilities der er gang i. Denne kommando giver ikke ret mange informationer fra sig, eksempelvis ikke engang navnet på det job, der udfører utilitien. En af de gode ting ved -DIS UTIL er, at alle kan udføre den, og den viser vha. et COUNT og en såkaldt PHASE, hvad en utility laver, og hvor langt den er med det. Disse informationer kan man ikke umiddelbart se andre steder.

For et stykke tid siden blev jeg dog så irriteret over de få informationer, som -DIS UTIL giver fra sig, at jeg undersøgte om der findes alternativer. Og det gør der. Der findes en DB2 utility kommando kaldet DIAGNOSE, som blandt andet kan vise indholdet af tablespacet SYSUTIL i databasen DSNDB01. Ingen tablespaces i DSNDB01 databasen kan læses med SQL, så derfor må man nøjes med andre værktøjer. Tablespacet SYSUTIL indeholder de informationer, som -DIS UTIL viser samt en hel del mere, som DIAGNOSE kan vise. DIAGNOSE aktiveres med følgende step:

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

DIAGNOSE kan også en masse andre ting, men lige netop DIAGNOSE DISPLAY SYSUTIL viser indholdet af DSNDB01.SYSUTIL. Og det er hele indholdet. Man kan altså ikke begrænse udtrækket til een bestemt utility, som man kan med -DIS UTIL. I manualen står der, at man skal have nogle ret skrappe autorisationer for at kunne udføre en DIAGNOSE, men jeg har prøvet lidt forskelligt, og mit gæt er, at netop DIAGNOSE DISPLAY SYSUTIL ikke kræver nogen autorisation på linie med -DIS UTIL.

Outputtet på SYSPRINT er desværre ret omfattende for hver utility og består af en læselig del kaldet SYSUTIL JOB INFORMATION, og to hexadecimale dumps, som ikke umiddelbart er af interesse. I den læselige del står der til gengæld en masse spændende ting, nemlig jobnavnet (USUJOBNM=), databasen (USUDBNAM=) og table- eller index-spacet (USUSPNAM=). Herudover står der andre informationer, som jeg ikke umiddelbart kan tyde, eller som -DIS UTIL også viser. En af de ting der stadig mangler er en reasoncode for, hvorfor eventuelle stoppede utilities rent faktisk er stoppet. Her må man stadig nøjes med at kigge i job-outputtet fra det fejlende job.

Forrige danske tip        Last tip in english        Tip oversigten