Data sets required by the user can either be defined dynamically,
through the ALLOCATE command or dynamic allocation, or they can be
defined in a logon procedure. Defining the data sets in a logon procedure
has the following advantages:
- May improve on-line performance. Data sets required by a command
or program do not have to be allocated each time the command or program
is run.
- Allows volumes to be mounted. If the data set is on an unmounted
volume, the operator is notified. Ordinarily, unless the user is
authorized to mount volumes, dynamic allocation requests do not allow
volumes to be mounted. If the volume is not already mounted, the request
fails.
- Provides recovery from an off-line device condition. Messages
tell the operator to vary the device on-line.
However, using DD statements in a logon procedure may increase
the time it takes for users to log on. To improve the performance
of the logon process, you may want to minimize the number of data
sets you allocate in the logon procedure. For more information about
the factors that improve logon performance, see Improving the performance of the logon process.
The following DD statements have special meaning and can be included
in the logon procedure:
- SYSEXEC
- defines the current REXX exec library concatenation to the EXEC
command when users use the implicit form of the command. By default,
the system searches SYSEXEC first, followed by SYSPROC.
The data
set described by this DD statement must be partitioned, and have a
record format of V, VB, F or FB. Instead of allocating the REXX exec library
in the logon procedure, you can allocate it dynamically using the
ALLOCATE command. For example:
allocate da('rexx.proc.lib') f(sysexec) shr
- SYSPROC
- defines the current REXX exec or CLIST library concatenation to
the EXEC command when users use the implicit form of the command.
The data set described by this DD statement must be partitioned, and
have a record format of V, VB, F or FB. Instead of allocating the REXX exec or CLIST
library in the logon procedure, you can allocate it dynamically, by
using the ALLOCATE command. For example:
allocate da('clist.proc.lib') f(sysproc) shr
To
explicitly activate REXX execs
or CLISTs, use the ALTLIB command. By using ALTLIB, you do not need
to include all application-level REXX execs or CLISTs in the user's logon procedure.
For information about the ALTLIB command, see .
The search order for the user, application, and system libraries is
shown and explained in Customizing the ALTLIB command.
By
default, the system searches SYSEXEC first, followed by SYSPROC.
- STEPLIB
- defines a private step library, which can contain command processors. You
should avoid using STEPLIB data sets in logon procedures, however,
because they may adversely affect performance. Each time the user
loads a module, the system searches the STEPLIB data set before searching
any others. As an alternative, users can use the TSO/E TSOLIB command.