- Tracing for this exit is disabled because of its sequence in the
initialization process.
- Because Exit 0 is called early in JES2 initialization, some main
task services may not be functional and most control blocks and interfaces
are not yet established. The JES2 dispatcher is not yet functional,
so MVS™ protocol should be used in Exit 0 routines
(such as, WAIT rather than $WAIT, ESTAE rather than $ESTAE.).
- If Exit 0 returns a return code of 12, IROPTS issues message $HASP864
indicating that Exit 0 terminated initialization. IROPTS then returns
to the IRLOOP with return code 8, indicating that the $HASP428 message
should be issued before final termination.
- The initialization options string passed to Exit 0 is first ‘folded’,
that is all the characters are ‘folded’ up to their capitalized
versions.
- The processing that JES2 does for the initialization options string
after calling Exit 0 is performed using the JES2 $SCAN facility and a table that defines the options input
allowed and how to process it. The table is actually composed of two
tables, an installation-defined table followed by a JES2-defined table.
By specifying installation-defined tables, an installation can implement
its own initialization options or replace the JES2 definition for
existing options. Thus this function can be accomplished without implementing
Exit 0, or with an implementation of Exit 0. Also, the $SCAN facility
itself can be used from an Exit 0 to process initialization options.
- If HASPXIT0 contains dynamic tables, the tables will
automatically be used when HASPXIT is loaded. It is also possible
to include dynamic tables in a module invoked by HASP.$EXIT0. However,
when using HASP.$EXIT0, include any tables in a separate load module
and invoke the $MODLOAD service to access the modules. If HASP.$EXIT0
is refreshed, any tables that the load module contains might move
to a different storage location without JES2's knowledge, resulting
in unpredictable results.
Attention: This exit should be thoroughly tested in an environment
that is totally inaccessible to your production JES2 environment (the
data set containing the test version of the module that contains exit
0 should not be in the link list).
This exit cannot be disabled
other than by replacing or removing the load module. A situation
where JES2 cannot be initialized may occur if the exit is improperly
coded. This risk can be minimized by using Exit 24 to define user
tables for commands, rather than Exit 0. However, for installation
defined installation statements, Exit 0 must be used.
Also,
if the MCT table entries are modified, the associated tables must
not be in the HASPINIT load module. This is because the HASPINIT
load module is deleted after initialization, and the tables will become
inaccessible. Note that this restriction applies regardless of whether
the tables define initialization statements, commands, or messages.