z/OS UNIX System Services Planning
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Controlling use of STEPLIBs

z/OS UNIX System Services Planning
GA32-0884-00

You can improve shell performance by controlling the use of STEPLIBs. A STEPLIB is a set of private libraries used to store a new or test version of an application program, such as a new version of a runtime library. To improve performance of the z/OS® shell, avoid propagating STEPLIBs by using one of the following options:
  • If you enter the OMVS command either from ISPF or with STEPLIB data sets allocated, include the statements in the shell profile. For example:
      if [ -z "$STEPLIB" ] &&; tty -s;
      then
              export STEPLIB=none
              exec sh -L
      fi
     

    The STEPLIB data sets are not extensively searched or propagated from the shell process to the shell command on exec(). They are also not propagated to shell processes, which might have been necessary because a specific release level of the Language Environment® runtime library is needed.

  • If you use the OMVS command to login to the shell, you can improve performance by using a logon procedure that does not contain any JOBLIB or STEPLIB DD allocations. Using that procedure reduces the amount of storage that is copied for fork(). It also prevents excessive searching of STEPLIB data sets and the propagation of STEPLIB data sets from the shell process to the shell command processes on exec().

    If you enter the OMVS command from ISPF or with STEPLIB data sets allocated, you can put certain statements in either /etc/profile or $HOME/.profile.

  • If you export a specific STEPLIB, you can have the Language Environment runtime library (SCEERUN) data set allocated as part of ISPLLIB to invoke OMVS from ISPF. In this case, you need to customize $HOME/.profile so that subset of the STEPLIB data sets is propagated
    Example: Customize $HOME/.profile so that only the STEPLIB data set CEE.SCEERUN containing the Language Environment runtime library is propagated.
      if [ -z "$STEPLIB" ] &&; tty -s;
      then
              export STEPLIB=CEE.SCEERUN;
              exec sh -L
      fi
     

    Result: A module found in CEE.SCEERUN is loaded from that library into the user's private storage, even if the same module has been put into the LPA. This action can become a concern if the STEPLIB points to a Language Environment runtime library, because several loads are done for each exec() to initialize the environment. If you have a number of users accessing this load library, you can avoid directory I/O as well as I/O to load frequently used members by caching the library in LLA and VLF.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014