Prestart jobs

Information about prestart jobs, such as the Display Active Prestart Jobs (DSPACTPJ) command, uses the term program start request exclusively to indicate requests made to start prestart jobs, even though the information might pertain to a prestart job that was started as a result of a TCP/IP connection request.

The following list contains the prestart job entry attributes with the initially configured value for the DDM TCP/IP server. They can be changed with the Change Prestart Job Entry (CHGPJE) command.

  • Subsystem description. The subsystem that contains the prestart job entries is QUSRWRK in V5R2. In earlier releases, it was QSYSWRK.
  • Program library and name. The program that is called when the prestart job is started is QSYS/QRWTSRVR.
  • User profile. The user profile that the job runs under is QUSER. This is what the job shows as the user profile. When a request to connect to the server is received from a client, the prestart job function swaps to the user profile that is received in that request.
  • Job name. The name of the job when it is started is QRWTSRVR.
  • Job description. The job description used for the prestart job is *USRPRF. Note that the user profile is QUSER so this will be whatever QUSER's job description is. However, the attributes of the job are changed to correspond to the requesting user's job description after the user ID and password (if present) are verified.
  • Start jobs. This indicates whether prestart jobs are to automatically start when the subsystem is started. These prestart job entries are shipped with a start jobs value of *YES. You can change these to *NO to prevent unnecessary jobs starting when a system IPL is performed.
    Note: If the DDM server jobs are not running and the DDM listener job is batch, immediate DDM server jobs will still be run under the QSYSWRK subsystem.
  • Initial number of jobs. As initially configured, the number of jobs that are started when the subsystem is started is 1. This value can be adjusted to suit your particular environment and needs.
  • Threshold. The minimum number of available prestart jobs for a prestart job entry is set to 1. When this threshold is reached, additional prestart jobs are automatically started. This is used to maintain a certain number of jobs in the pool.
  • Additional number of jobs. The number of additional prestart jobs that are started when the threshold is reached is initially configured at 2.
  • Maximum number of jobs. The maximum number of prestart jobs that can be active for this entry is *NOMAX.
  • Maximum number of uses. The maximum number of uses of the job is set to 200. This value indicates that the prestart job ends after 200 requests to start the server are processed. In certain situations, you might need to set the MAXUSE parameter to 1 in order for the TCP/IP server to function properly. When the server runs certain ILE stored procedures, pointers to destroyed objects might remain in the prestart job environment; subsequent uses of the prestart job might cause MCH3402 exceptions. IBM® i minimizes this possibility.
  • Wait for job. The *YES setting causes a client connection request to wait for an available server job if the maximum number of jobs is reached.
  • Pool identifier. The subsystem pool identifier in which this prestart job runs is set to 1.
  • Class. The name and library of the class the prestart jobs will run under is set to QSYS/QSYSCLS20.

When the start jobs value for the prestart job entry has been set to *YES, and the remaining values are as provided with their initial settings, the following events happen for each prestart job entry:

  • When the subsystem is started, one prestart job is started.
  • When the first client connection request is processed for the TCP/IP server, the initial job is used and the threshold is exceeded.
  • Additional jobs are started for the server based on the number defined in the prestart job entry.
  • The number of available jobs will not reach below 1.
  • The subsystem periodically checks the number of prestart jobs in a pool that are unused and ends excess jobs. It always leaves at least the number of prestart jobs specified in the initial jobs parameter.