Follow

JEC Language Reference Manual

This is part of the Heirloom Computing Elastic Batch Platform forum on paas.heirloomcomputing.com

IBM z/OS JES2 V2R2 Job Execution Control language is used to define Job Groups which describe the interrelationships of jobs for scheduling purposes.  For example the following JEC job deck describes the job group MYGROUP:

//*  DEPENDENCY NETWORK:
//*
//*                JOBC
//*                  |
//*             JOBE===JOBA
//*                  |
//*                JOBX
//*
//*
//*-----------------------------
//MYGROUP  JOBGROUP
//*
//JOBA     GJOB
//*
//JOBE     GJOB
//         CONCURRENT NAME=JOBA
//*
//JOBC     GJOB
//         BEFORE NAME=JOBA
//*
//JOBX     GJOB
//         AFTER  NAME=JOBA
//*
//MYGROUP  ENDGROUP

Then the following sequence of JCL jobs with the SCHEDULE statement refer to it. Note this example will fail if the jobs are not run under control of the Job Group because dependent datasets may not exist.

//* :....1....:....2....:....3....:....4....:....5....:....6....:....7.
//* Sequence of jobs running under control of JOBGROUP=MYGROUP

//JOBX     JOB  (22,DEPT22,22IKJ22),'job group',CLASS=B,MSGCLASS=A,
//              MSGLEVEL=(2,2),NOTIFY=USERID
//         SCHEDULE JOBGROUP=MYGROUP
//CREATEA EXEC PGM=IEFBR14,
//              PARM='SYSOUT=CREATED+BY+JOBX'
//SYSOUT   DD   DISP=(NEW,CATLG),DSN=JOBX.DAT
//DEPEND1  DD   DISP=(SHR,KEEP),DSN=JOBA.DAT
//DEPEND2  DD   DISP=(SHR,KEEP),DSN=JOBC.DAT
//DEPEND3  DD   DISP=(SHR,KEEP),DSN=JOBE.DAT

//JOBA     JOB  (22,DEPT22,22IKJ22),'job group',CLASS=B,MSGCLASS=A,
//              MSGLEVEL=(2,2),NOTIFY=USERID
//         SCHEDULE JOBGROUP=MYGROUP
//CREATEA EXEC PGM=IEFBR14,
//              PARM='SLEEP=30 SYSOUT=CREATED+BY+JOBA'
//SYSOUT   DD   DISP=(NEW,CATLG),DSN=JOBA.DAT
//DEPEND1  DD   DISP=(SHR,KEEP),DSN=JOBC.DAT

//JOBC     JOB  (22,DEPT22,22IKJ22),'job group',CLASS=B,MSGCLASS=A,
//              MSGLEVEL=(2,2),NOTIFY=USERID
//         SCHEDULE JOBGROUP=MYGROUP
//CREATEA EXEC PGM=IEFBR14,
//              PARM='SYSOUT=CREATED+BY+JOBC'
//SYSOUT   DD   DISP=(NEW,CATLG),DSN=JOBC.DAT

 

//JOBE     JOB  (22,DEPT22,22IKJ22),'job group',CLASS=B,MSGCLASS=A,
//              MSGLEVEL=(2,2),NOTIFY=USERID
//         SCHEDULE JOBGROUP=MYGROUP
//CREATEA EXEC PGM=IEFBR14,
//              PARM='SLEEP=30 SYSOUT=CREATED+BY+JOBE'
//SYSOUT   DD   DISP=(NEW,CATLG),DSN=JOBE.DAT
//DEPEND1  DD   DISP=(SHR,KEEP),DSN=JOBC.DAT

All jobs referenced in the group must be submittied and ready to run for any part of the job group to start.  If duplicates of jobs are submitted, one is chosen to be part of the group at the time the group becomes active.  When the entire group of jobs finish, then the group will become active again when a new set of jobs are submitted.

Job Groups are defined by submitting decks to EBP where a job class of type JEC has been defined at at least one initiator is available to process the definition.  Definitions persist EBP shutdown / start-up.  Groups can be displayed as an XML representation of the JEC dec with the LIST service.  To delete a group, submit a JEC job deck which contains only a JOBGROUP and ENDGROUP of the same name (empty job group).

 

The implementation of the IBM z/OS JES2 Job Execution Control syntax accepted EBP is described below in extended Bachus-Naur form and syntax "railroad" diagrams.

Rules

  1. job
  2. jobgroup
  3. groupcards
  4. jobsets
  5. setcards
  6. gjob
  7. modifiers
  8. commentcard
  9. jobgroupcard
  10. jobgroupname
  11. jgpositional
  12. accounting
  13. programmer
  14. jgkeyword
  15. endgroupcard
  16. jobsetcard
  17. jobsetid
  18. jskeyword
  19. endsetcard
  20. sjobcard
  21. gjobcard
  22. gjobcardid
  23. gjkeyword
  24. aftercard
  25. after
  26. beforecard
  27. before
  28. backeyword
  29. morenames
  30. action
  31. concurrentcard
  32. concurrent
  33. cckeyword
  34. comment
  35. ifcontin
  36. ifexpr
  37. andorexpr
  38. reloper
  39. relexpr
  40. booloper
  41. anyexpr
  42. quotedstring
  43. anything
  44. idres
  45. idnonexprres
  46. idresint
  47. idresvar
  48. idresintvar
  49. intvar
  50. intidres
  51. idintvar
  52. ID
  53. variable
  54. comma
  55. reserved
  56. nonexprreserved
  57. exprreserved
  58. INT
  59. HEX
  60. NEWLINE
  61. WS
  62. SPECIAL
  63. INTL

Rules

Was this article helpful?
0 out of 0 found this helpful
Have more questions? Submit a request

0 Comments

Please sign in to leave a comment.
Powered by Zendesk