MainframeSupports
tip uge 5/2005:

Mit tip på engelsk for 14 dage siden om MQ definitioner i batch medførte at en af mine danske læsere røbede over for mig, hvordan man får fornuftige returkoder tilbage fra batch kommandoen COMMAND. Denne viden vil jeg nu dele med jer allesammen. Det oprindelige danske tip om COMMAND stammer helt tilbage fra uge 19 i 2001.

Der findes en option til kommandoen COMMAND, der hedder FAILURE. FAILURE kan angives som FAILURE(CONTINUE), der betyder, at hvis een af kommandoerne på DD-kort CSQUCMD fejler, så vil COMMAND fortsætte med de efterfølgende kommandoer, men til slut vil returkoden fra CSQUTIL være forskellig fra 0. Man kan også angive FAILURE(STOP), der betyder, at eksekveringen af kommandoer stopper ved den første fejl og returkoden fra CSQUTIL bliver forskellig fra 0. Som bekendt er default for manglende angivelse af FAILURE, at CSQUTIL altid giver returkode 0. Her er et eksempel på, hvordan FAILURE benyttes:

//MQUTIL   EXEC PGM=CSQUTIL,PARM='MYMQ'
//SYSPRINT DD SYSOUT=*
//SYSIN    DD *
  COMMAND FAILURE(STOP)
/*
//CSQUCMD  DD DISP=SHR,DSN=MY.MQ.DEF(INITION)

En surf tur på IBM's bookmanager site afslører, at option FAILURE sandsynligvis har eksisteret lige siden MQ blev opfundet til mainframen. Så uanset hvilken version af MQ, du benytter, så vil ovenstående virke.

Forrige danske tip        Last tip in english        Tip oversigten