As ever, you use these free programs and modifications at your own risk. Abbydale Systems LLC. do not accept any responsibility for any failure or outage caused by this software or these modification. This software is working on our own system.

It is the users responsibility to assess the usefulness of this software to their own site.

Feel free to use any of the free software on this site but please honor the copyright.

WARNING!

Any failure in a JES2 Exit may result in an unstable or potentially unusable system.
Please use extreme caution when modifying, removing or reinstalling any JES exits.

Reading this document does not make you an expert!


This page details some enhancements to the JES2 Mellon Bank modifications that were being supported and distributed by Stephen McColley. These modifications are now called the Shared Spool Mods (SSM).

The modifications available on the CBT tape files are as follows:

 

Link

JES2 Version

Documentation Link

 
 

File 702

1.6

Overview
Original Documentation
Install Guide
User Guide
 
 
 
 

File 766

1.7 and 1.8

Install Guide
Users Guide
Operations Commands
 
 
 
 

File 856

1.9 through to 1.13

Install Guide
Users Guide
Operations Commands
 
 
 
 

File 914

2.1

Install Guide
Users Guide
Operations Commands
 
 
 

What are the Mellon Bank Modifications?

The original Mellon Bank modifications added support to JES2 for some basic job scheduling functions that were already available on JES3. These were primarily by use of the /*AFTER, /*BEFORE and /*CNTL JECL cards.

How do they work?

The modifications work as an interdependent set of JES2 exits. These exits are documented thoroughly in the SSM documentation and it is not our intention to further document them here, but it should be noted that if your site currently uses an old version of the SSM (Mellon Bank Modifications) you may need to review how the exits currently work to see if they match the way the new SSM modifications work.

For example at one site if the jobname on the /*AFTER was not in the system when the job was submitted, then the job became eligible for execution immediately. However, in their old system, this was not the case. The job remained held until a job matching that of the name on the /*AFTER card had run. The site depended on this feature for scheduling jobs.

Another issue was that one site had allowed for 8 /*CNTL cards to be used but 'out of the box' SSM allows only 5.

This page will detail the changes needed to make SSM work the way the site was already using the old exits.

It was decided to limit the number of changes in the SSM code so that the support for SSM could remain with McColley System group for the most part. The only exception to this was for increasing the number of /*CNTL cards allowed.

Increasing the Number of /*CNTL cards.

In order to increase the amount of permitted /*CNTL cards you will need to change 2 of the SSM assembler macros ($STJCTX & $STQNAME). As shipped SSM allows for 5 /*CNTL cards. To increase this to 10 make the following changes (changes are highlighted and underlined):

  $STJCTX * The following line was commented out as part of CNTLPTF fix *
*JCXDNAM DS CL45 CNTLPTF NAMES FROM CNTL CARDS AND THEIR
UJCXDNAM DS
CL90 CNTLPTF NAMES FROM CNTL CARDS AND THEIR
 
 
  $STQNAME * The following line was commented out as part of CNTLPTF fix *
*BRDNAME DS CL45 CNTLPTF NAMES FROM CNTL CARDS AND SHARE TYPES
UBRDNAME DS
CL90 CNTLPTF NAMES FROM CNTL CARDS AND SHARE TYPES
.
....and
.
* The following line was commented out as part of CNTLPTF fix *
*BRNCTL EQU X'08' MAX # OF NAMES INCLUDING ***CNTLPTF
UBRNCTL EQU
X'0D' MAX # OF NAMES INCLUDING ***CNTLPTF
 

Once these macros have been changed you will need to assemble all the SSM exits again and re-IPL. You will probably have to IPL all members of the shared spool in order for the fix to be fully implemented.

Holding JOBS with missing /*AFTER jobs

This fix is a little trickier as it involves an additional 4 JES exits. These exits should be 'stacked' with the SSM exits so they can be kept as separate exits. The additional exits are for EXIT07, EXIT28, EXIT49 with one new exit to support a new operator command for releasing jobs manually if needed (EXIT05). The zip file with all of these exits in is available from here.

JES EXIT07
(BSLJX07B)

EXIT07 is the JES2 $JCT read/write exit.
  This exit is used as a job termination exit to release the hold on jobs that have the terminating job defined on a /*AFTER card providing that the terminating job was successful.

It will search through the JES2 JQE's and free up the hold if the terminating job is a prerequisite for a job awaiting execution, again, providing that the terminating job was successful. 'Successful' means that the job ended with a maximum condition code no greater than condition code 4.

The exit navigates through the input queue job classes looking for jobs that have a matching /*AFTER card for the job that is finishing. If it finds one that matches the input queue job's JQE is updated to release the /*AFTER condition.

If this exit is not activated then the /*AFTER condition gets released when a job ends regardless of if it was successful or not.

This EXIT has the ability to real screw up JES2 if incorrectly coded; therefore it builds its own ESTAE routine in order to try to protect JES2 from any failures within the code.

The SSM (Mellon Bank) JQE extension (STQNAME) macro is used by this EXIT. If the SSM modifications are disabled then this will not adversely affect this exit. The exit can remain in place regardless of the status of the SSM JES exits.

If the structure or length of any of the fields of SSM JQE extension macro is altered then this exit will need to be reassembled to pick up the new structure.
 

JES EXIT28
(BSLJX28B)

EXIT28 is the JOB termination exit.
  The only purpose of this exit is to set bit 1 of the field JCTUSER0 on if the task terminating is a started task (STC), JOB or a TSO user (TSU)

This bit is set so that BSLJX07B (EXIT07C) is forced to search through the JQE's to look for any jobs that may be waiting for this task to terminate.

This exit is critical to the correct functioning of SSM if you want a job with a /*AFTER card to wait until the job specified on that card runs even if it isn't in the system when the job is originally submitted.

This exit requires that SSM is installed in order for it to do anything!
 

JES EXIT49
(BSLJX49B)

EXIT49 is the JOB queue work selection QGOT exit.
  This exit is called after JES2 has selected job for potential execution. The exit is given the chance to accept or reject the selection. The exit is needed to prevent SSM from allowing jobs to run when the job specified on a /*AFTER card is not yet in the system.

If you disable this exit then the requirement that a prerequisite job is already in the system before the dependent job is submitted is in effect. With this exit that is not the case and a job will not be considered eligible for selections until the prerequisite job terminates.

This exit uses the SSM macro (STQNAME).

If the SSM modifications are disabled this should not adversely affect this exit. The exit can remain in place regardless of the status of the SSM JES exits.

If the structure or length of any of the fields of SSM JQE extension macro is altered then this exit will need to be reassembled to pick up the new structure.
 

JES EXIT05
(BSLJX05B)

EXIT05 is the JES2 command preprocessor exit.
  This exit gets control after a JES2 command is entered. Its sole purpose is to allow the operators to release the /*AFTER condition on a job.

The format of the release command is $AJnnnnn,AFT

The release command only works when it is issued using the job number. It will not work at all using the jobname
(i.e. you have to use $AJ1234,AFT not $AJ'jobname',AFT)

The exit establishes an ESTAE environment to make sure that any failure in the exit will not result in an unusable JES2 system. Switching off this EXIT05C will not cause any issues other than the fact that a job with an unsatisfied /*AFTER condition will never be eligible for execution until the job specified on the /*AFTER card has run. The only way of releasing this condition would be to run a job with the same name as that coded on the /*AFTER card.

This exit uses the SSM macro (STQNAME)

If the SSM modifications are disabled this should not adversely affect this exit. The exit can remain in place regardless of the status of the SSM JES exits.

If the structure or length of any of the fields of SSM JQE extension macro is altered then this exit will need to be reassembled to pick up the new structure.
 
 
 


If you need any support or assistance with any of the code on this site
or
if you would like to contact us, please click here

follow us on facebook
Follow us on Facebook

 

Number of unique visitors 1071

Copyright © Abbydale Systems LLC 2015-2024

Abbydale Systems LLC Lic. 802696149. All rights reserved.

Last modified : Monday 20th of December 2021