JES2 Exits

Navigate back to home page
z/OS related collateral
Windows related collateral
SQL/mySQL related collateral
Link to code that can be used on websites.
Link to ASL Program Documentation
All our latest news
Contacting Abbydale Systems
Obtain product support/suggestions
https://www.abbydalesystems.com/Terms and con
General disclaimer
All about Abbydale Systems
How we got our company name
Our privacy policy
Our development strategy
Visit our guestbook

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!


Looking for the Mellon Bank Modifications? If so click the button below



JES2 Exits


We would be very neglectful if on this page we didn't issue a warning about JES exits.

JES exits have the potential to make your operating system useless so extreme caution should be exercised before implementing new JES exits or recoding old JES exits.

If possible always use a sandbox system for the testing of your JES exits and use dynamic activation and deactivation of the exits on a quiesced system.




Activating/Deactivating


Many (but not all) of the exits can be activated or deactivated 'inflight' and there are basically two ways of activating and deactivating a JES exit, only one of these is a permanent activation (across JES2 restarts).

Exits that create token pairs can not be temporarily deactivated, these should be placed in (or removed from) the JES2 initialization deck and JES2 restarted in order to activate or deactivate them. It is strongly recommended that any changes to these token pair exits are changed via an IPL as the tokens can survive a JES2 hot restart.

Permanent Activation



Permanent activation or deactivation is achieved by way of adding or altering the LOADMOD and EXIT statements in the JES2 Initialization deck and then IPLing the system. The LOADMOD and EXIT(nn) statements must come before any new statements using any keywords supported in the exits themselves. This is why the recommendation is made that new initialization statements are placed at the very bottom of the initialization deck.

The format of the LOADMOD and EXIT(nn) statements is documented in the IBM documentation and will not be covered in this document other than in the portion of the document that describes the current JES2 Initialization implementation for all of the exits described in this document.

Temporary Activation


Temporary activation or deactivation is achieved by using the $TEXIT and the $ADD or $DEL JES2 commands.

These commands will only work if the JES2 subsystem is already active. These commands are ineffective if the exits themselves are already called. In other words if an exit goes into a loop issuing the command to deactivate the exit will not break out of the loop for you. Under these conditions an IPL is usually the only way out of the loop.

In order to deactivate and remove an exit issue the following commands:

$TEXIT(nn),ROUTINES=(-EXITnnC)
$DEL LOADMOD(BSLJXnnB)

To activate (or reactivate) use:

$ADD LOADMOD(BSLJXnnB)
$TEXIT(nn),ROUTINES=(+EXITnnC)

Note : It should be noted that there are several exits that require a slightly different $ADD command as they reside in CSA and so the $ADD command for these would be:

$ADD LOADMOD(BSLJX50B),STORAGE=CSA


Page #1  
Name
Description
  This is a zip file containing all the JES exit code used to implement the Mellon Bank Modification.

Link to information page click here.


  This exit forms part of the Mellon Bank modifications. It 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 exit 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.

Link to information page click here.


  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 JQEs and free up the hold if the terminating job is a prerequisite for a job awaiting execution, providing that the terminating job was successful. 'Successful' means that the job ended with a maximum condition code no greater 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.

Link to information page click here.


  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 the Mellon Bank Mods 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 the Mellon Bank Mods are installed in order for it to do anything!

Link to information page click here.


  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.

Link to information page click here.


Page #1  


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

follow us on facebook
Follow us on Facebook




Subscribe to our YouTube Channel Subscribe to our YouTube channel


CBT Tape Home Page MVS and OS/390 Freeware Link to the CBT website


Copyright © Abbydale Systems LLC 2015-2026

Abbydale Systems LLC Lic. 802696149. All rights reserved.