MainframeSupports
tip uge 40/2018:

Som jeg tidligere har været inde på, så er det nu lettere end nogensinde at undgå OPC/TWS. Mange af de funktioner OPC/TWS stiller til rådighed kan nu laves direkte i JCL. Og i denne uge vil jeg give dig et tip til, hvordan du automatisk får kørt det samme job igen og igen. Det kan gøres alene med JCL, SORT og et dataset/member, hvor jobbet opbevares. Se bare her:

//MYUSERRR JOB ,'REPEAT',MSGCLASS=F,COND=(4,LT),
//         CLASS=A,REGION=0M,NOTIFY=&SYSUID
//*
// SCHEDULE HOLDUNTL=('05:00','2018/274')
//*
//NEXTJOB  EXEC PGM=SORT
//SYSOUT   DD SYSOUT=*
//SORTIN   DD DISP=SHR,DSN=MYUSER.JCL(REPEAT)
//SORTOUT  DD SYSOUT=(,INTRDR)
//SYSIN    DD *
    OPTION COPY
    OUTFIL IFTHEN=(WHEN=(1,21,CH,EQ,C'// SCHEDULE HOLDUNTL='),
           BUILD=(1,23,C'05',26,6,DATE3(/)+1,40,41)),
           IFTHEN=(WHEN=NONE,BUILD=(1,80))
/*
//* PUT REST OF JOB AFTER THIS COMMENT

I ovenstående job skal du lige rette selve jobkortet til for at det kan virke på din installation. Hvad du ellers vil have jobbet til at gøre hver time eller dag eller uge eller... må du selv tilføje i de efterfølgende steps. Ovenstående job kører hver dag kl. 5 om morgenen, bortset fra første gang, hvor det kører med det samme, du submitter det. Du skal lige huske at gemme det i MYSUSER.JCL(REPEAT), inden du submitter det første gang.

Og hvad er det så lige, der foregår? SCHEDULE sørger for at jobbet startes på det angivne tidspunkt på den angivne dag. SORT læser jobbet fra SORTIN og kopierer det til SORTOUT, som automatisk submitter det igen. Under kopieringen retter SORT indholdet af SCHEDULE kortet, så dato-delen tælles een op (DATE3(/)+1), hvilket bevirker at det submittede job først starter klokken 5 næste dag. Her kan du jo vælge at lægge 7 til, hvis jobbet kun skal køre een gang om ugen eller en anden værdi. Det fantastiske er, at du også kan styre tidspunktet. Jeg har bare valgt, at det kører fast klokken 5, men her kan du selv bruge nogle af funktionerne i BUILD-funktionen i SORT til for eksempel at lade jobbet starte hver time eller hver anden eller hvad du nu lige har brug for.

Du skal være opmærksom på, at hvis du retter jobbet i MYUSER.JCL(REPEAT), så virker det først efter næste gang jobbet har kørt, da det aktuelt ventende job ligger i input-køen i JES. Hvis du vil have det til at virke ved den første eksekvering efter din rettelse, så skal du først cancellere jobbet i JES og derefter submitte det med SCHEDULE rettet til det tidspunkt, hvor du vil have den nye version af jobbet til at køre første gang.

Jeg har brugt ovenstående trick i et par år nu, og det virker forbløffende stabilt. Jobbet overlever for eksempel IPL, så det behøver du ikke tænke over. Jeg er utroligt glad for dette trick og håber, at du også bliver det.

Forrige danske tip        Last tip in english        Tip oversigten