mikrom wrote:Thank you very much for previous answers!
I'm new to the mainframe world, working through some tutorials to learn the first steps on mainframe, so I have some questions - maybe very stupid:
1. What is meant by the concept of "Cataloged Procedures"? For example: What is the difference between the procedure 'IEL1CL' and the cataloged procedure 'IBMZCPL' for compiling PL/I? Are only the cataloged procedures supported by IBM and the other not?
A cataloged procedure is one that resides in a PDS, the alternative, which is useful when you are developing a procedure, is an "in-stream" procedure. There are probably also examples 'prino.rahp.pli', e.g. 'RUN2PDS'. Basically, it has the same format as an "external" PROC, but is placed before any "executable" JCL and ends with a
- Code: Select all
// PEND
statement.
Using in-stream procedures was pretty normal until the mid 1990's as few users could place there procedures in the system PROCLIBS. Since then you can code a
- Code: Select all
//label JCLLIB ORDER=(your.own.proclib,your.other.proclib)
directly after the JOB statement, and those PDS'es will be searched before any system PROCLIBs.
mikrom wrote:2. I'm little bit confused of a cryptic usage of procedure names. How can I decipher the purpose of the procedure from the procedure name?
For example: Why is the procedure for compiling PL/I named 'IBMZCPL' and for compiling COBOL 'IGYWCL' ?
I thing (when I look at substitution JCL in compile job logs in SDSF), that probably only the last characters in the procedure names says what the procedure does: Maybe 'CPL' in 'IBMZCPL' means Compile + Prelink + Link-edit and
'CL' in 'IGYWCL' means Compile + Link-edit. But the other letters in the procedure names seems to be arbitrarily given by IBM. Am I right or not?
The PL/I compiler load module is called IBMZ(something), the COBOL compiler load module is called, if I am correct, IGY(something). Your guess that the last characters more or less give the function of the procedure is correct, but this only holds true for IBM procs. At one client procedures for JOB
Pxxxx were simply called
PxxxxA/B/C/etc. For real production work using procedures is (probably) the way to go, but for your own JCL I'd suggest that you just code in-line JCL and a bunch of
- Code: Select all
// SET VAR='value'
statements to customize the lot.
mikrom wrote:3. When I read Compile+Link+Go I understand the first two, but what means the step Go ?
Go means run the compiled and linked program