JES2 "Mellon Mods" on MVS 3.8j
Overview
This page is concerned only with documenting how to install these mods. As to why, you'd want to do this - you'll have to ask yourself about that... There are many other good resources on the history of the "Shared Spool Mods" e.g., the Abbydale Systems site.
Important Notes
Because this mod involves changing JES2 control blocks (specifically the JQE and QSE definitions), if you have any software installed which interprets these (e.g., QUEUE, REVOUT as part of REVIEW, etc.), these will likely not work after the mods have been installed. You will need to reassemble them, to allow the new definitions of the control blocks to be picked up. For QUEUE you can do this easily within MVS 3.8j, but for REVIEW you will need some form of supported assembler (I have not tried it, but from what I can tell, IFOX00 is not supported).
Make sure you take backups of your system! If somehow installing these mods goes wrong, you can very easily end up with a non-functional JES2. At the very least take a backup of your SYSRES volume, but it's the modern era - just back up your entire system!
Gathering Materials
You will need a copy of the mods which works for MVS 3.8j. There are plenty of copies of the mods for more recent versions of JES2, but none of these will work with MVS 3.8j at least not without significant rework. What we need is a version which will work with the old version of JES2 we have - fortunately one is archived here as file 189 of version 188 of the CBT tape.
A little bit of work is required to extract it - the tape is compressed so you can't simply grab the files directly, you must first get the second file on the tape called "CBT973" which is the decompression program. Once you have this, you can assemble and link it, then run it to decompress the files we want - the docs on file 188, and the code on file 189. I have also uploaded the files themselves, so you can save yourself the effort: FILE188 (docs), FILE189 (code IEBUPDTE format).
Creating the Usermod
To install the mods you have two options. If you are brave, you could directly update 'SYS1.HASPSRC' reassemble and relink JES2 and re-IPL. Alternatively, and I would argue more sensibly, you can install the mods as a SMP4 usermod. That is the route these instructions will take. The first step will be to update the format of the code we get in FILE189 to something which SMP4 can make sense of, and which works with our specific version of MVS 3.8j.
Note that I have provided the JCL for all of this below, so there is no need to do it yourself - but details are provided in case you do.
Firstly, we will need to add the "metadata" that SMP4 requires. This mostly takes the form of adding ++MAC, ++SRC, and ++SRCUPD statements, removing now extraneous ./ ADD IEBUPDTE control statements, as well as providing the overall definition of the usermod. You can see what changes I made by looking at the job MBJES01R in the Installation section below. I no SMP expert by any measure, so I mostly based this on existing ones on Jay Moseley's usermods page. You'll therefore have to forgive any mistakes I may have made. I have used MBJES01 throughout as the USERMOD ID.
Secondly, there is one change we need to make to the code. For whatever reason, one label does not line up - so change the line which reads:
CLEANUP L R1,=V($QGETAFF) SET MASK FOR 'TM' MBJ20053 P5486000
to:
INITGOOD L R1,=V($QGETAFF) SET MASK FOR 'TM' MBJ20053 P5486800
Installation
There are three jobs we will need to install. They are going to do the typical SMP installation procedure - RECEIVE, APPLY-CHECK, and finally APPLY. The JCL is below:
- MBJES01R.jcl (receive)
- MBJES01C.jcl (apply-check)
- MBJES01A.jcl (apply)
Run these in order. Executing the first job will give you MAXRC=12 the first time it is run due to REJECT-ing something which doesn't exist. Subsequent runs should return 0. The second and third jobs will return RC=4 due to bypassed dependencies.
Provided they all ran correctly, you have installed the mods! Congrats... just re-IPL, and you should be set! I would suggest a cold start of JES2 to be safe.
Note as mentioned above, that if you use any software which interfaces with JES2, you will very likely need to reassemble it to ensure that it picks up the new definitions of the changed control blocks - ensure that when you do, you include 'SYS1.SMPMTS' ahead of 'SYS1.HASPSRC' in the SYSLIB concatenation so as to ensure the changed macros which define the JES2 control blocks are correctly picked up. Without this all your reassembling work will be for nothing...
Now What?
You can begin to use the newly added features! Be sure to read the documentation on the /*ROUTE, /*CNTL, /*BEFORE, and /*AFTER cards.
As a demonstration, here is a jobstream which has two jobs, one which is submitted first but which will wait until the second one has completed before executing.
//MBIVP002 JOB 001,'MELLON IVP2',CLASS=A,MSGCLASS=A
/*AFTER MBIVP001
//NOP2 EXEC PGM=IEFBR14
//MBIVP001 JOB 001,'MELLON IVP1',CLASS=A,MSGCLASS=A
//NOP1 EXEC PGM=IEFBR14
//
The job log from executing it on my system looks like this:
$HASP100 MBIVP002 ON INTRDR MELLON IVP2
$HASP100 MBIVP001 ON INTRDR MELLON IVP1
$HASP373 MBIVP001 STARTED - INIT 1 - CLASS A - SYS MSYS
IEF403I MBIVP001 - STARTED - TIME=01.24.35
IEFACTRT NOP1 /IEFBR14 /00:00:00.00/00:00:00.03/00000/MBIVP001
IEF404I MBIVP001 - ENDED - TIME=01.24.35
$HASP395 MBIVP001 ENDED
$HASP150 MBIVP001 ON PRINTER1 25 LINES
$HASP373 MBIVP002 STARTED - INIT 1 - CLASS A - SYS MSYS
IEF403I MBIVP002 - STARTED - TIME=01.24.35
$HASP160 PRINTER1 INACTIVE - CLASS=A
$HASP250 MBIVP001 IS PURGED
IEFACTRT NOP2 /IEFBR14 /00:00:00.00/00:00:00.02/00000/MBIVP002
IEF404I MBIVP002 - ENDED - TIME=01.24.35
$HASP395 MBIVP002 ENDED
$HASP309 INIT 1 INACTIVE ******** C=A
$HASP150 MBIVP002 ON PRINTER1 26 LINES
$HASP160 PRINTER1 INACTIVE - CLASS=A
$HASP250 MBIVP002 IS PURGED
Back | Home