Use of prestart jobs

A prestart job is a batch job that starts running before a program on a remote system initiates communications with the server.

Prestart jobs use prestart job entries in the subsystem description to determine which program, class, and storage pool to use when the jobs are started. Within a prestart job entry, you must specify attributes for the subsystem to use to create and to manage a pool of prestart jobs.

Prestart jobs increase performance when you initiate a connection to a server. Prestart job entries are defined within a subsystem. Prestart jobs become active when that subsystem is started, or they can be controlled with the Start Prestart Job (STRPJ) and End Prestart Job (ENDPJ) commands.

System information that pertains to prestart jobs (such as DSPACTPJ) uses the term 'program start request' exclusively to indicate requests made to start prestart jobs, even though the information may pertain to a prestart job that was started as a result of a sockets connection request.

Notes:

All of the host servers that are supported by the sockets communications interface support prestart jobs.

These servers are:

The following lists provide each of the prestart job entry attributes, and provide the initial values that are configured for the host servers using sockets communications support.

Subsystem description

The subsystem that contains the prestart job entries.

Host server Value
Network Print QUSRWRK
Remote command and program call QUSRWRK
Central QUSRWRK
Database QUSRWRK
Secure Database QUSRWRK
File QSERVER
Secure File QSERVER
Data Queue QUSRWRK
Signon QUSRWRK

Program library/name

The program that is called when the prestart job is started.

Host server Value
Network Print QSYS/QNPSERVS
Remote command and program call QSYS/QZRCSRVS
Central QSYS/QZSCSRVS
Database QSYS/QZDASOINIT
Secure Database QSYS/QZDASSINIT
File QSYS/QPWFSERVSO
Secure File QSYS/QPWFSERVSS
Data Queue QSYS/QZHQSSRV
Signon QSYS/QZSOSIGN

User profile

The user profile that the job runs under. This is what the job shows as the user profile. When a request to start a server is received from a client, the prestart job function switches to the user profile that is received in that request.

Host server Value
Network Print QUSER
Remote command and program call QUSER
Central QUSER
Database QUSER
Secure Database QUSER
File QUSER
Secure File QUSER
Data Queue QUSER
Signon QUSER

Job name

The name of the job when it is started.

Host server Value
Network Print *PGM
Remote command and program call *PGM
Central *PGM
Database *PGM
Secure Database *PGM
File *PGM
Secure File *PGM
Data Queue *PGM
Signon *PGM

Job description

The job description used for the prestart job. Note that if *USRPRF is specified, the job description for the profile that this job runs under will be used. This means QUSER's job description will be used. Some attributes from the requesting user's job description are also used; for example, print device and output queue are swapped from the requesting user's job description.

Host server Value
Network Print QSYS/QZBSJOBD
Remote command and program call QSYS/QZBSJOBD
Central QSYS/QZBSJOBD
Database QGPL/QDFTSVR
Secure Database QGPL/QDFTSVR
File QGPL/QDFTSVR
Secure File QGPL/QDFTSVR
Data Queue QSYS/QZBSJOBD
Signon QSYS/QZBSJOBD

Start jobs

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 to ensure that the server jobs are available. The STRHOSTSVR command starts each prestart job as part of its processing.

Host server Value
Network Print *YES
Remote command and program call *YES
Central *YES
Database *YES
Secure Database *YES
File *YES
Secure File *YES
Data Queue *YES
Signon *YES

Initial number of jobs

The number of jobs that are started when the subsystem starts. This value is adjustable to suit your particular environment and needs.

Host server Value
Network Print 1
Remote command and program call 1
Central 1
Database 1
Secure Database 1
File 1
Secure File 1
Data Queue 1
Signon 1

Threshold

The minimum number of available prestart jobs for a prestart job entry. When this threshold is reached, additional prestart jobs automatically start. Threshold maintains a certain number of jobs in the pool.

Host server Value
Network Print 1
Remote command and program call 1
Central 1
Database 1
Secure Database 1
File 1
Secure File 1
Data Queue 1
Signon 1

Additional number of jobs

The number of additional prestart jobs that are started when the threshold is reached.

Host server Value
Network Print 2
Remote command and program call 2
Central 2
Database 2
Secure Database 2
File 2
Secure File 2
Data Queue 2
Signon 2

Maximum number of jobs

The maximum number of prestart jobs that can be active for this entry.

Host server Value
Network Print *NOMAX
Remote command and program call *NOMAX
Central *NOMAX
Database *NOMAX
Secure Database *NOMAX
File *NOMAX
Secure File *NOMAX
Data Queue *NOMAX
Signon *NOMAX

Maximum number of uses

The maximum number of uses of the job. A value of 200 indicates that the prestart job will end after 200 requests to start the server have been processed.

Host server Value
Network Print 200
Remote command and program call 1
Central 200
Database 200
Secure Database 200
File *NOMAX
Secure File *NOMAX
Data Queue 200
Signon 200

Wait for job

This causes a client connection request to wait for an available server job if the maximum number of jobs has been reached.

Host server Value
Network Print *YES
Remote command and program call *YES
Central *YES
Database *YES
Secure Database *YES
File *YES
Secure File *YES
Data Queue *YES
Signon *YES

Pool identifier

The subsystem pool identifier in which this prestart job runs.

Host server Value
Network print 1
Remote command and program call 1
Central 1
Database 1
Secure database 1
File 1
Secure file 1
Data queue 1
Signon 1

Class

The name and library of the class the prestart job runs under.

Host server Value
Network Print QGPL/QCASERVR
Remote command and program call QGPL/QCASERVR
Central QGPL/QCASERVR
Database QSYS/QPWFSERVER
Secure Database QSYS/QPWFSERVER
File QSYS/QPWFSERVER
Secure File QSYS/QPWFSERVER
Data Queue QGPL/QCASERVR
Signon QGPL/QCASERVR

When the start jobs value for the prestart job entry has been set to *YES and the remaining values are at their initial settings, the following actions take place for each prestart job entry:

Monitor prestart jobs

Use the Display Active Prestart Jobs (DSPACTPJ) command to monitor the prestart jobs. For example, to monitor prestart jobs for the signon server, you must know the subsystem your prestart jobs are in (QUSRWRK or a user-defined subsystem) and the program (for example, QZSOSIGN).

The DSPACTPJ command provides the following information:

+--------------------------------------------------------------------------------+
|                   Display Active Prestart Jobs                 AS400597        |
|                                                      01/12/95  16:39:25        |
|Subsystem  . . . . . :   QUSRWRK       Reset date . . . . . :   01/11/95        |
|Program  . . . . . . :   QZSOSIGN      Reset time . . . . . :   16:54:50        |
|  Library  . . . . . :     QSYS      Elapsed time . . . . :   0023:12:21        |
|                                                                                |
| Prestart jobs:                                                                 |
|   Current number . . . . . . . . . . . . . . . . :   10                        |
|   Average number . . . . . . . . . . . . . . . . :   8.5                       |
|   Peak number  . . . . . . . . . . . . . . . . . :   25                        |
|                                                                                |
| Prestart jobs in use:                                                          |
|   Current number . . . . . . . . . . . . . . . . :   5                         |
|   Average number . . . . . . . . . . . . . . . . :   4.3                       |
|   Peak number  . . . . . . . . . . . . . . . . . :   25                        |
|                                                                                |
|                                                                                |
|                                                             More...            |
|                                                                                |
|                                                                                |
+--------------------------------------------------------------------------------+
+--------------------------------------------------------------------------------+
|                                                      01/12/95  16:39:25        |
|Subsystem  . . . . . :   QUSRWRK       Reset date . . . . . :   01/11/95        |
|Program  . . . . . . :   QZSOSIGN      Reset time . . . . . :   16:54:50        |
|  Library  . . . . . :     QSYS      Elapsed time . . . . :   0023:12:21        |
|                                                                                |
|                                                                                |
|                                                                                |
| Program start requests:                                                        |
|   Current number waiting . . . . . . . . . . . . :   0                         |
|   Average number waiting . . . . . . . . . . . . :   .2                        |
|   Peak number waiting  . . . . . . . . . . . . . :   4                         |
|   Average wait time  . . . . . . . . . . . . . . :   00:00:20.0                |
|   Number accepted  . . . . . . . . . . . . . . . :   0                         |
|   Number rejected  . . . . . . . . . . . . . . . :   0                         |
|                                                                                |
|                                                                                |
|                                                                                |
|                                                             Bottom             |
|Press Enter to continue.                                                        |
|                                                                                |
|F3=Exit   F5=Refresh   F12=Cancel   F13=Reset statistics                        |
|                                                                                |
+--------------------------------------------------------------------------------+

Manage prestart jobs

Pressing the F5 key while on the Display Active Prestart Jobs display can refresh the information presented for an active prestart job. The information about program start requests can indicate whether you need to change the available number of prestart jobs. If the information indicates that program start requests are waiting for an available prestart job, you can change prestart jobs with the Change Prestart Job Entry (CHGPJE) command.

If the program start requests are not acted on quickly, you can do any combination of the following:

The key is to ensure that an available prestart job exists for every request.

Remove prestart job entries

If you decide that you do not want the servers to use the prestart job function, you must do the following:

  1. End the prestarted jobs with the End Prestart Job (ENDPJ) command.

    Prestarted jobs ended with the ENDPJ command are started the next time the subsystem is started if start jobs *YES is specified in the prestart job entry or when the STRHOSTSVR command is issued for the specified server type. If you only end the prestart job and don't take the next step, any requests to start the particular server will fail.

  2. Remove the prestart job entries in the subsystem description with the Remove Prestart Job Entry (RMVPJE) command.

    The prestart job entries that are removed with the RMVPJE command are permanently removed from the subsystem description. Once the entry is removed, new requests for the server will succeed.

Use routing entries

When a daemon job is routed to a subsystem, the job is using the routing entries in the subsystem description. The routing entries for the host server daemon jobs are added to the subsystem description when the STRHOSTSVR command is issued. These jobs are started under the QUSER user profile. For daemon jobs that are submitted to the QSYSWRK subsystem, the QSYSNOMAX job queue is used. For daemon jobs that are submitted to the QSERVER subsystem, the QPWFSERVER job queue is used.

The characteristics of the server jobs are taken from their prestart job entry. If prestart jobs are not used for the servers, then the server jobs start with the characteristics of their corresponding daemon jobs.

The following information provides the initial configuration in the IBM-supplied subsystems for each of the server daemon jobs.

Network print server daemon

Subsystem QSYS/QSYSWRK
Job queue QSYSNOMAX
User QUSER
Route data QNPSERVD
Job name QNPSERVD
Class QGPL/QCASERVR
Sequence number 2538

Remote command and program call server daemon

Subsystem QSYS/QSYSWRK
Job queue QSYSNOMAX
User QUSER
Route data QZRCSRVSD
Job name QZRCSRVSD
Class QGPL/QCASERVR
Sequence number 2539

Central server daemon

Subsystem QSYS/QSYSWRK
Job queue QSYSNOMAX
User QUSER
Route data QZSCSRVSD
Job name QZSCSRVSD
Class QGPL/QCASERVR
Sequence number 2536

Database server daemon

Subsystem QSYS/QSERVER
Job queue QPWFSERVER
User QUSER
Route data QZDASRVSD
Job name QZDASRVSD
Class QSYS/QPWFSERVER
Sequence number 600

File server daemon

Subsystem QSYS/QSERVER
Job queue QPWFSERVER
User QUSER
Route data QPWFSERVSD
Job name QPWFSERVSD
Class QSYS/QPWFSERVER
Sequence number 200

Data queue server daemon

Subsystem QSYS/QSYSWRK
Job queue QSYSNOMAX
User QUSER
Route data QZHQSRVD
Job name QZHQSRVD
Class QGPL/QCASERVR
Sequence number 2537

Signon server daemon

Subsystem QSYS/QSYSWRK
Job queue QSYSNOMAX
User QUSER
Route data QZSOSGND
Job name QZSOSGND
Class QGPL/QCASERVR
Sequence number 2540

Server Mapper daemon

Subsystem QSYS/QSYSWRK
Job queue QSYSNOMAX
User QUSER
Route data QZSOSMAPD
Job name QZSOSMAPD
Class QGPL/QCASERVR
Sequence number 2541