IBM Support

Disabling and Re-Enabling the Use of the Threaded QZLSFILET NetServer Job

Troubleshooting


Problem

This document describes how to disable and re-enable the use of the multithreaded QZLSFILET job.

Resolving The Problem

IBM i NetServer uses a single multithreaded server job, QZLSFILET, to service most requests. For more information, see IBM i NetServer Threaded Request Support.  In some cases, the use of the QZLSFILET job is detrimental to users that prefer to use the QZLSFILE jobs.  QZLSFILE jobs are capable of accessing file systems that are not thread safe like QDLS. This document describes how to safely stop the use of the QZLSFILET job, how to prevent its future use, and how to resume the use of the QZLSFILET job.

How to Stop Using the Threaded NetServer File Server Job

To safeguard against errors and to make it easier to undo any changes, make a copy of the QSERVER subsystem description by using the following operating system command:
 
CRTDUPOBJ OBJ(QSERVER) FROMLIB(QSYS) OBJTYPE(*SBSD) NEWOBJ(QSERVERBAK)


This copy can be used as a reference, and it can be copied to the original name to undo any changes that are made.

In order to prevent failures in the NetServer that could require an IPL to recover from, it is recommended that the NetServer is ended completely before you end and remove the QZLSFILET prestart job. To end the NetServer, run the following command:
 
ENDTCPSVR *NETSVR

Then, run the command:
 
WRKACTJOB JOB(QZLS*)

If the QZLSFILET or QZLSSERVER jobs are still displayed, press the F5 key periodically to refresh the screen, it can take a minute or more for them to end. If for some reason the QZLSSERVER job ended but the QZLSFILET job did not, run the command:
 
ENDPJ SBS(QSERVER) PGM(QZLSFILET) OPTION(*IMMED)

Then, the prestart job entry for the QZLSFILET job must be removed from the subsystem description to prevent future use of the threaded server job. Run the following operating system command:
 
RMVPJE SBSD(QSERVER) PGM(QZLSFILET)

The NetServer now uses QZLSFILE jobs for all connections. Because the prestart job entry was removed from the subsystem, the QZLSFILET job cannot start when NetServer is restarted.

Once the QZLSFILET prestart job entry is removed, restart NetServer by using the command:
 
STRTCPSVR *NETSVR


Resuming Use of the Threaded NetServer File Server Job
 
Caution: Subsystem Descriptions get backed up only when you run the SAVSYS command or when you select Option 21 "Entire System" or Option 22 "System data only" on the GO SAVE menu. IBM does not recommend deleting the duplicate subsystem description (QSERVERBAK) from the System i system in the expectation that it can be restored from a backup tape. If the QSERVERBAK subsystem description accidentally did not get backed up or if the SAVSYS backup is not available, rebuilding the Subsystem Description can be a long and arduous process.

To start the use of the QZLSFILET job again, the backup subsystem description could be copied to overwrite the QSERVER subsystem description.  This change requires that the subsystem is ended and restarted. To perform this change, run the following operating system commands, and press the Enter key after each command:
 
ENDTCPSVR *NETSVR
ENDSBS SBS(QSERVER) OPTION(*IMMED)
DLTSBSD SBSD(QSYS/QSERVER)
CRTDUPOBJ OBJ(QSERVERBAK) FROMLIB(QSYS) OBJTYPE(*SBSD) TOLIB(QSYS) NEWOBJ(QSERVER)
STRSBS SBSD(QSERVER)
STRTCPSVR *NETSVR

Another option is to add the prestart job entry to the QSERVER subsystem description and start the prestart job. This alternative approach allows the change to be made without interrupting any services. First, to add the prestart job entry to the QSERVER subsystem description, run the following operating system command:
 
ADDPJE SBSD(QSYS/QSERVER) PGM(QSYS/QZLSFILET) STRJOBS(*NO) INLJOBS(1) +
THRESHOLD(1) ADLJOBS(0) MAXJOBS(*NOMAX) JOBD(QSYS/QZLSPJ) MAXUSE(1) +
CLS(QSYS/QPWFSERVER)

Then, to start the prestart job, run the following operating system command:
 
STRPJ SBS(QSERVER) PGM(QZLSFILET)


NetServer can be customized so that the prestart jobs (QZLSFILE and beginning with V5R4, QZLSFILET) can run in subsystems other than QSERVER.  Connections are directed to one subsystem or another based on the IP address of the requester. If you are using customized subsystems, the changes can be made to subsystem descriptions other than QSERVER. The QSERVER subsystem is the default subsystem for the jobs to run in and is the only one that IBM configures for them to run in. Therefore, it was used as the subsystem in the examples.

Other Jobs that run in QSERVER subsystem

After first making the changes to either discontinue or resume the use of the multi-threaded job, it might be necessary to manually start the host server jobs that run in the QSERVER subsystem. Run the following commands to start those host servers:
 
STRHOSTSVR SERVER(*DATABASE)
STRHOSTSVR SERVER(*FILE)


Upgrade Information:

When you upgrade your operating system release, the subsystem descriptions in the QSYS library are replaced with new ones. The new subsystem descriptions are provided so that any new features that require a change to the subsystems have those changes in place for the new release. If you modified the QSYS/QSERVER subsystem description object by removing the prestart job entry for the QZLSFILET program, that change is lost when your system is upgraded. So you either need to save this information and place it with your notes on things to do during an upgrade, or make an extra change to your system. Another solution is to copy or move the modified QSERVER subsystem description to another library. Then, modify the startup program to start the subsystem from the new location (STRSBS QGPL/QSERVER, for example).  If you are starting the subsystem from a description in a library other than QSYS, the upgrade does not impact your changes. If you do follow this technique, it is a good practice to compare the new subsystem description to the old one after an upgrade. Be sure that there aren't other new features that you are missing.  This level of detail is not provided in the Memo To Users or other mechanisms used to inform customers of changes and new features available in a new release.

[{"Product":{"code":"SWG60","label":"IBM i"},"Business Unit":{"code":"BU054","label":"Systems w\/TPS"},"Component":"Host Servers","Platform":[{"code":"PF012","label":"IBM i"}],"Version":"Version Independent","Edition":"","Line of Business":{"code":"LOB08","label":"Cognitive Systems"}}]

Historical Number

424182307

Document Information

Modified date:
09 June 2021

UID

nas8N1018967