The Mysterious QP0ZSPWP Jobs
QP0ZSPWP jobs are created by spawn() and fork() functions. But what do they do?
By Dawn May02/01/2019
Spawn Process is a Unix-type API that creates a new job, called the child process. The child process inherits many attributes of the calling job, called the parent process. There are four variations of the spawn() API that can be used. Spawn() uses batch immediate jobs or prestart jobs for the child process.
If you want to use prestart jobs, prestart job entries must be added the appropriate subsystem(s). Using prestart jobs does not eliminate the overhead of starting and ending a job for each spawn invocation. Rather, they move the overhead of job initiation out of the mainline path when spawn is run. Spawn() ignores the MAXUSE parameter of the prestart job entry and the job is only used one time.
Qshell is set up to take advantage of prestart jobs by default. If you catch a spawned job in process, you will find they use the job name of QP0ZSPWP, even when run as batch immediate jobs. These spawned jobs are generally invisible because they’re short-lived, generally do not produce job logs, and the CPF1124/CPF1164 messages aren’t logged to the history log.
There are just a few steps to configure Qshell to use prestart jobs.
First, you must add the prestart job entry to the appropriate subsystem—this is likely QINTER. I recommend using the QDFTSVR job description. The values you select for the configuration parameters depend upon your usage.
Next, you need to tell Qshell to use prestart jobs. This is done with the environment variable QSH_USE_PRESTART_JOBS. If you set this environment variable within your Qshell session, use the export command so that child processes will also use prestart jobs:
For SSH, you must set the QIBM_PASE_USE_PRESTART_JOBS environment variable system wide.
ADDENVVAR ENVVAR(QIBM_PASE_USE_PRESTART_JOBS) VALUE(Y) LEVEL(*SYS)
After you have set up the environment variable you need to restart the *SSHD server to pick up the change.
Dawn May is an IBM i consultant. She owns Dawn May Consulting, LLC in the Greater Boston area. Dawn is a former IBM senior technical staff member.