Troubleshooting
Problem
IBM i NetServer uses a single multithreaded server job, QZLSFILET, to service most requests. However, the QZLSFILET job cannot be used to access single-threaded file systems, such as QDLS. Environments where the QDLS file system is in use should consider disabling QZLSFILET and allowing all NetServer clients to allocate single-threaded QZLSFILE jobs.
This document describes how to safely disable the QZLSFILET job, how to prevent its future use, and how to resume the use of the QZLSFILET job, if desired.
Resolving The Problem
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:
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:
Then, run the command:
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:
Then, the prestart job entry for the QZLSFILET job must be removed from the QSERVER subsystem description to prevent future use of the threaded server job. Run the following operating system command:
IBM i NetServer will now use individual QZLSFILE jobs for each NetServer connection. Because the prestart job entry was removed from the subsystem, the QZLSFILET job will not start when NetServer is restarted.
Once the QZLSFILET prestart job entry is removed, start NetServer by using the command:
Resuming Use of the Threaded NetServer File Server Job
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:
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:
Then, to start the prestart job, run the following operating system command:
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:
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.
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 QSERVER subsystem description to prevent future use of the threaded server job. Run the following operating system command:
RMVPJE SBSD(QSERVER) PGM(QZLSFILET)
IBM i NetServer will now use individual QZLSFILE jobs for each NetServer connection. Because the prestart job entry was removed from the subsystem, the QZLSFILET job will not start when NetServer is restarted.
Once the QZLSFILET prestart job entry is removed, start 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.
Related Information
[{"Product":{"code":"SWG60","label":"IBM i"},"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Component":"Host Servers","Platform":[{"code":"PF012","label":"IBM i"}],"Version":"Version Independent","Edition":"","Line of Business":{"code":"LOB57","label":"Power"}}]
Historical Number
424182307
Was this topic helpful?
Document Information
Modified date:
29 September 2023
UID
nas8N1018967