MainframeSupports
tip uge 5/2003:

Har det nogensinde irriteret dig, at du er nødt til at rette to steder i dit JCL, hvis du skal bruge et andet datasetnavn på et dataset, som du først sletter og derefter opretter igen. Hvis svaret er nej, så behøver du ikke læse mere. Jeg har tidligere omtalt metoder til at slette datasets med, nemlig IEFBR14 metoden (den gammeldags) og IDCAMS metoden (anbefales). Faktisk findes der en tredie og endnu mere fancy metode, men den kan kun anvendes, hvis du i samme job sletter et dataset og derefter opretter det igen. Desuden kræver det, at man anvender OPC på din installation.

Nu vil jeg først vise dig, hvordan et typisk job sletter og opretter igen:

//SLETDSN  EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN    DD *
    DELETE MY.BACKUP.DATA
    SET MAXCC = 0
/*
//MYCHANGE EXEC PGM=SORT
//SORTIN   DD DISP=SHR,DSN=MY.ORIGINAL.DATA
//SORTOUT  DD DISP=(NEW,CATLG),SPACE=(TRK,(15,15),RLSE),
// DSN=MY.BACKUP.DATA
//SYSOUT   DD SYSOUT=*
//SYSIN    DD *
    SORT FIELDS=COPY
/*

Jobs med to steps, der ligner ovenstående, finder der rigtig mange af. Mange af dem anvender IEFBR14 i stedet for IDCAMS til at slette med. Jobbet kan optimeres til følgende stump JCL i stedet med præcis samme resultat:

//SLETDSN  EXEC PGM=EQQDELDS
//*
//MYCHANGE EXEC PGM=SORT
//SORTIN   DD DISP=SHR,DSN=MY.ORIGINAL.DATA
//SORTOUT  DD DISP=(NEW,CATLG),SPACE=(TRK,(15,15),RLSE),
// DSN=MY.BACKUP.DATA
//SYSOUT   DD SYSOUT=*
//SYSIN    DD *
    SORT FIELDS=COPY
/*

Programmet EQQDELDS vil slette MY.BACKUP.DATASET, hvis det findes i forvejen, og hvis det ikke findes, gør det ikke noget som helst. Under begge omstændigheder afslutter det med cond code 0. Hvis der er andre DD-navne eller efterfølgende steps, hvor der allokeres datasets med DISP=(NEW,CATLG), så vil EQQDELDS også forsøge at slette disse datasets. Jeg kan ikke udelukke, at datasets allokeret før EQQDELDS steppet også ryger en tur. Jeg har ikke prøvet det af, men mon det vil opføre sig så fjollet. Prøv det af hvis du kommer i en situation, hvor du vil anvende EQQDELDS midt i et job med mange steps.

EQQDELDS er et utility program, der følger med OPC, så derfor virker ovenstående steps kun, hvis OPC er installeret og EQQDELDS er lagt på link-listen. Hvis man ikke anvender OPC på din installation, så må du lure EQQDELDS kunsten af og selv lave et tilsvarende program. Hvis OPC anvendes og EQQDELDS ikke virker, så er det sandsynligvis ikke på link-listen og så må du have fat i OPC systemprogrammøren for at høre, hvilket steplib du skal anvende. I øvrigt anvender EQQDELDS IDCAMS til at slette med.

EQQDELDS er absolut ikke nogen ny opfindelse. En søgning på nettet gav ikke mange hits, men et af dem gik tilbage til 1998 og beskrev, at IBM havde rettet nogle problemer med EQQDELDS. Måske er EQQDELDS ikke særligt udbredt pga. et dårligt ry, så derfor anbefaler jeg det kun til ovenstående anvendelse, men det er også godt nok til mig.

Forrige danske tip        Last tip in english        Tip oversigten