En af de helt store forbedringer i z/OS version 2.2 er muligheden for at definere og eksekvere jobflows a la OPC eller andre jobschedulers. Der er kommet nogle udvidelser til JCL, som gør det muligt at definere jobbene i et jobflow og deres indbyrdes afhængigheder. For at forstå, hvordan det virker, har jeg lavet et meget simpelt jobflow, der eksekverer to jobs i rækkefølge, hvor det er JES, der garanterer rækkefølgen. Først skal du definere jobflow'et:
//MYUSERJG JOBGROUP //MYUSERJ1 GJOB //MYUSERJ2 GJOB // AFTER NAME=MYUSERJ1 //MYUSERJG ENDGROUP
Et jobflow kaldes i JCL for en JOBGROUP. En JOBGROUP skal have et navn, og i ovenstående eksempel er navnet MYUSERJG. De enkelte jobs i en jobgroup defineres som et GJOB (Group JOB). Ved hjælp af AFTER NAME=<GJOBname> Fortæller du JES, at job MYUSERJ2 først må køre, når job MYUSERJ1 er kørt. For at afslutte din JOBGROUP skal du angive en ENDGROUP med samme navn som din JOBGROUP. Ovenstående JOBGROUP kan du submitte på normal vis. Her skal du dog vide, at der er en fejl i de tidlige udgaver af SUBMIT kommandoen, som ikke havde lært at forstå JOBGROUP. Hvis SUBMIT af ovenstående fejler, så kontakt din zOS systemprogrammør og bed ham om at rette det. Du kan submitte via internal reader indtil SUBMIT kommandoen virker.
Og hvordan ser du så, at din JOBGROUP er på plads i JES? Her skal du bruge kommandoen JG i SDSF, som bringer dig over i en ny oversigt over jobgroups. Her kan du bruge de samme linie-kommandoer, som du er vant til fra ST oversigten. Det er dog ikke sikkert, at P for purge virker, da det (i hvert fald på min installation) kræver lidt ekstra gymnastik i RACF. Snak med din RACF administrator, hvis purge ikke virker.
Når din JOBGROUP ser ud til at have det fint i SDSF, så er du klar til at sende dine to jobs afsted:
//MYUSERJ1 JOB ACCT,NAME // SCHEDULE JOBGROUP=MYUSERJG //TESTSTEP EXEC PGM=IEFBR14 //MYUSERJ2 JOB ACCT,NAME // SCHEDULE JOBGROUP=MYUSERJG //TESTSTEP EXEC PGM=IEFBR14
Disse to jobs skal nok tilpasses kravene til et jobkort på din installation, for at de kommer til at virke. For at jobbene skal kunne genkendes af JES som hørende til din JOBGROUP, skal du som det første efter jobkortet angive et SCHEDULE-kort. Som parameter skal du angive JOBGROUP=<jobgroup-name>, for så ved JES, at jobbet hører til din JOBGROUP. Efter SCHEDULE kommer så resten af dit job.
Du kan submitte jobbene, der hører til din JOBGROUP i vilkårlig rækkefølge og du behøver ikke at gøre det samtidigt. JES skal nok holde styr på jobbene, og du kan følge med i udviklingen i SDSF JG oversigten. Jeg vil varmt anbefale dig at eksperimentere med rækkefølgen, du submitter jobbene, så du får en føling med, hvordan JOBGROUP og de tilhørende jobs virker. Det eneste krav er, at din JOBGROUP skal submittes før dine jobs.
Ovenstående eksempel kan du kun bruge til at komme i gang, så du lige får følingen med JOBGROUP. Der er rigtig mange muligheder for at definere jobsammenhænge og kontrollere på returkoder. Det kan du altsammen læse om i JCL reference.