Job 'Control' Language
Learning JCL was deceptively easy at first. I mean, how could it not be, you only have 3 keywords and they are pretty easy to get a grasp of what they do. JOB, EXEC and DD are pretty self-explanatory and writing your own JCL is easy when you are trying to do uncomplicated things. Every person can write jobs that create a dataset or concat two datasets.
The real difficulty of JCL lies in all the different utilities that are available. I want to say that I learned a couple but that would kind of be a half truth. I know how to use IEBGENER to copy datasets or members from a PDS, I know how IEFBR14’s side effects make it so you can create or delete datasets, ICEMAN (cool name, always reminds me of X-Men) is also a really handy tool for sorting a dataset or counting rows and of course IGYWC so I can compile my COBOL.
You may be asking why the quotation marks around control, well that’s because it didn’t feel like I was fully in control. I think everyone who ever learned JCL has fear in their heart for the dreaded “JCL ERROR CN(INTERNAL)” cause I sure as hell do. Whenever I submitted my jobs and that message popped up I sighed. I sighed so much that I now have a pavlovian reaction to seeing those letters in that order. The other problem arises while using a 3270. In ISPF it doesn’t show you what the error was or where your mistake is. This may be an issue exclusively to ISPF since I could imagine that newer IDE’s probably have some intellisense or something like it.
I am really grateful that one of the other people in my class of new mainframers, Liam, really took an interest in JCL. He saved all of our collective asses multiple times with regards to JCL. I really have an appreciation for the work he did and does. To some it might sound easy but he figured out how we could precompile and use a mainprogram with multiple subprograms where they all use DB2. He was also the first one to figure out how to create/fill/give an alternate index to a VSAM through JCL. He’s genuinely a really talented dude.
When I got hired in my current job, they told me I didn’t have to write JCL anymore. I’m grateful for that but at the same time I’m really happy that I still know how it works. Why the quotes around control you may ask, well that's cause I really don't feel in control of JCL. I’ll leave you off with a funny picture one of my colleagues made during our final project for the training.
Until I write again,
Lennie Busschots