Skip to main content

Smarter Work Management

A better understanding of the jobs related to IBM Web Administration for it can prove to be very helpful for troubleshooting and problem determination.

A red ball is connected by a bunch of steel rods connected to small silver balls in a large spider like network

IBM Web Administration for i has several definitions depending on who you ask. From a user perspective, the IBM Web Administration for i provides an easy-to-use Web interface for configuring and managing Web technologies found on the IBM i platform. From an IBM i system administrator perspective, IBM Web Administration for i represents a Web application running in an IBM integrated Web application server associated with an IBM HTTP server acting as a front-end Web server. From an IBM i work management perspective, IBM Web Administration for i consists of one subsystem (QHTTPSVR), one job queue (QZHBHTTP), and multiple active jobs responsible for running and managing the various Web related servers defined within the IBM Web Administration for i interface on a system.

This article will focus on IBM Web Administration for i from an IBM i system administrator and work management point of view. A better understanding of the jobs related to IBM Web Administration for i can prove to be very helpful while performing troubleshooting and problem determination of HTTP related servers, the IBM Web Administration for i GUI, IBM Systems Director Navigator or other Web-based administration interfaces on IBM i.

Basic Concepts You Need to Know

You should have a basic understanding of IBM i work management concepts, such as jobs, subsystems and job queues. To learn more about these concepts, reference the IBM i InfoCenter.

The following is a typical lifecycle of a batch job:

  1. When a job is submitted on an IBM i system, a new job with a unique qualified name gets created. This is also the time when the newly created job receives its job attributes (job description, user profile, job queue, library list, request data, etc.) that will be used during job processing.
  2. The job moves to a job queue, where it waits to enter a subsystem that can run it. A job queue can be thought of as a “waiting room” for a subsystem.
  3. When the job enters a subsystem from a job queue, it becomes active.
  4. The subsystem defines which memory pool the job will run in.
  5. The job processing completes and any job related printer files (also called spool files) are placed in an output queue where it waits to be sent to a printer or file.

Now, you’re armed with some basic knowledge of work management on IBM i. Next, let’s explain how it correlates to IBM Web Administration for i.

IBM HTTP Server Jobs

The ADMIN IBM HTTP server is the front-end Web server used to run IBM Web Administration for i. All HTTP related server jobs on IBM i go through job queue QZHBHTTP and get assigned to the QHTTPSVR subsystem once they become active. IBM Web Administration for i's HTTP-related server jobs can be started with the following CL command:

STRTCPSVR SERVER(*HTTP) HTTPSVR(*ADMIN) 

Note that when the ADMIN server instance is started using the STRTCPSVR command, the QHTTPSVR subsystem will be started if it is currently inactive.

The following CL command can be issued to view all of the active ADMIN HTTP server jobs in subsystem QHTTPSVR:

WRKSBSJOB SBS(QHTTPSVR) 

Job User Type -----Status----- Function
ADMIN QTMHHTTP BATCH ACTIVE PGM-QZHBMAIN
ADMIN QTMHHTTP BATCHI ACTIVE PGM-QZSRLOG
ADMIN QTMHHTTP BATCHI ACTIVE PGM-QZSRHTTP
ADMIN QTMHHTTP BATCHI ACTIVE PGM-QZSRCGI

HTTP Manager Job

The HTTP server job showing function PGM-QZHBMAIN and running under user profile QTMHHTTP is the manager job for the ADMIN HTTP server. When you enter the aforementioned STRTCPSVR command, this job is the first job submitted to job queue QZHBHTTP in library QHTTPSVR.

As the manager job for the ADMIN HTTP server, this job initiates the startup of all the other ADMIN HTTP related jobs, such as the logging job, any CGI jobs, the primary job, and the hot backup job if the hot backup functionality is enabled.

Logging Jobs

HTTP server jobs showing function PGM-QZSRLOG and running under user profile QTMHHTTP provide logging for the ADMIN HTTP server. Each logging job is responsible for logging to a single log. Error logs and access logs are two different types of log files that can be written to. Logging-related directives specified in the HTTP configuration file determine which logs need to be written to. In our example, error logging is turned on while access logging is turned off. Therefore, only a single logging job is active for the ADMIN HTTP server.

The following sequence of steps can be followed in order to determine the name of the log file a specific logging job is responsible for.

  1. Specify “5=Work with” next to the logging job from the Work With Subsystem Jobs display.
  2. Specify Option 10 and press Enter on the Work With Job display to view the logging job's joblog.
  3. Place the cursor on message HTP8432 with text “This is a logging job for HTTP server ADMIN.”
  4. Press “F1=Help” on the HTP8432 message to see the message details. The message's technical description text will state what log file this particular job is writing to. For the ADMIN HTTP server, the error logging job writes to file: /QIBM/UserData/HTTPA/admin/logs/error_log.

Primary Job

The HTTP server job showing function PGM-QZSRHTTP and running under user profile QTMHHTTP is the primary job for the ADMIN HTTP server. This is the job with the largest number of threads and is responsible for actively handling incoming HTTP requests.

Hot Backup Job

The HTTP server job showing function PGM-QZSRHTTP, running under user profile QTMHHTTP and with fewer threads than the primary job is the hot backup job for the ADMIN HTTP server. By default the ADMIN server doesn’t start the hot backup job because directive “HotBackup Off” is specified in the IBM ADMIN configuration file /QIBM/ProdData/HTTPA/admin/conf/admin-ibm.conf.

If this job is active, it remains idle until needed. The hot backup job can take over as the primary HTTP job if the manager job ever detects the existing primary job is no longer handling incoming HTTP requests. At that time, the manager job ends the original primary job and restarts a new hot backup job.

CGI Job

The job showing function PGM-QZSRCGI and running under user profile QTMHHTTP is a CGI job for the ADMIN HTTP server. Each CGI job is associated with a single user profile and only handles CGI requests for that user profile.

By checking the user profile associated with a CGI job, you can determine which user’s IBM Web Administration for i log-on session it’s associated with. For example if the current user profile associated with a CGI job is a profile called JOEUSER, then that particular job is responsible for processing CGI requests for JOEUSER’s IBM Web Administration for i log-on session.

This concludes our discussion of the different types of IBM HTTP server jobs associated with the front-end Web server for IBM Web Administration for i. Now let’s turn our attention to the IBM integrated Web application server jobs associated with IBM Web Administration for i.

IBM Integrated Web Application Server Jobs

If you recall, IBM Web Administration for i represents a Web application running in an IBM integrated Web application server associated with the ADMIN HTTP server already described. Let’s take a look at how the IBM integrated Web application server gets associated with the ADMIN HTTP Server. Note this association between an HTTP server and an integrated Web application server may vary based on the IBM i release or the currently used version of the integrated Web application server. For our example, let’s assume we are talking about an IBM i 7.1 system and a V8.1 integrated Web application server.

The following include directive can be found in the ADMIN HTTP server configuration file (/QIBM/ProdData/HTTPA /admin/conf/admin-ibm.conf):

include /QIBM/ProdData/OS/OSGi/LWISysInst/conf/admin-lwi.conf 

File admin-lwi.conf defines the association information between the ADMIN HTTP server and the ADMIN integrated Web application server. Here are the pertinent directives listed in file admin-lwi.conf responsible for allowing these servers to seamlessly work together:

#---------------------------------------
# LWI Admin1 Instance directives
#---------------------------------------
LoadModule mod_ibm_lwi /QSYS.LIB/QHTTPSVR.LIB/QLWIIHSMOD.SRVPGM
LwiPluginConfig /QIBM/UserData/HTTPA/admin/conf/lwi-plugin-cfg.xml
<LwiProfile Admin1>
LwiAutostartOption StartEnd
LwiStartJobQueue QHTTPSVR/QZHBHTTP HTTPWWW
LwiAssignUserID QLWISVR
</LwiProfile>

#---------------------------------------
# LWI Admin2 Instance directives
#---------------------------------------
<LwiProfile Admin2>
LwiAutostartOption StartEnd
LwiStartJobQueue QHTTPSVR/QZHBHTTP HTTPWWW
LwiAssignUserID QLWISVR
</LwiProfile>

#---------------------------------------
# LWI Admin3 Instance directives
#---------------------------------------
<LwiProfile Admin3>
LwiAutostartOption StartEnd
LwiStartJobQueue QHTTPSVR/QZHBHTTP HTTPWWW
LwiAssignUserID QLWISVR
</LwiProfile>

#---------------------------------------
# LWI Admin4 Instance directives
#---------------------------------------
<LwiProfile Admin4>
LwiAutostartOption StartEnd
LwiStartJobQueue QHTTPSVR/QZHBHTTP HTTPWWW
LwiAssignUserID QWEBADMIN
</LwiProfile> 

The LoadModule directive activates module mod_ibm_lwi within the HTTP server to enable the application server specific directives of LwiPluginConfig, LwiProfile, LwiAutostartOption and LwiAssignUserID. Directive LwiPluginConfig defines the IBM integrated Web application server plug-in file used to route HTTP requests to the appropriate integrated Web application server instance based on the submitted request's Unified Resource Identifier (URI). Container directive LwiProfile defines the integrated Web application server instance name. In file admin-lwi.conf the following four integrated Web application server instances are specified: Admin1, Admin2, Admin3 and Admin4. Each of these instances will correlate to a job running in subsystem QHTTPSVR with the same name. The directive LwiAutostartOption specifies that the application server will be automatically started or stopped when the HTTP server starts or stops. Directive LwiStartJobQueue specifies the job queue that the application server job will be sent to prior to becoming active. The directive LwiAssignUserID specifies the user profile under which the application server jobs are running. This directive is deprecated and no longer used on IBM i 6.1 and later.

The following CL command will show you the integrated Web application server instance jobs running in subsystem QHTTPSVR:

WRKSBSJOB SBS(QHTTPSVR) 

Job User Type -----Status----- Function
ADMIN1 QLWISVR BATCHI ACTIVE JVM-com.ibm.lw
ADMIN2 QLWISVR BATCHI ACTIVE JVM-com.ibm.lw
ADMIN3 QLWISVR BATCHI ACTIVE JVM-com.ibm.lw
ADMIN4 QWEBADMIN BATCHI ACTIVE JVM-com.ibm.lw

Each job handles one integrated Web application server instance. These four instances are considered system-level jobs for hosting different Web applications. For example, the ADMIN2 job runs under the QLWISVR user profile and is responsible for running IBM Systems Director Navigator. The ADMIN4 job runs under the QWEBADMIN user profile and is responsible for running the IBM Web Administration for i GUI interface.

This concludes our discussion of the IBM integrated Web application server jobs associated with IBM Web Administration for i. Now let’s briefly discuss some log files an IBM i system administrator can review if there are any problems associated with IBM Web Administration for i.

IBM Web Administration for i Log Files

Any time a system administrator has problems with the IBM Web Administration for i interface, it’s a good idea to check the following log files to see if there are any error messages associated with the problem.

To check for errors in the ADMIN HTTP server jobs, review the error logs found in /QIBM/UserData/HTTPA/admin/logs/error_log.*

To check for errors in the integrated Web application server instance jobs review the logs found in /QIBM/UserData/OS/OSGi/LWISysInst/<$admin_instance>/lwi/logs/lwistderr.txt and /QIBM/UserData/OS/OSGi/LWISysInst/<$admin_instance>/lwi/logs/lwistdout.txt.

Note: <$admin-instance> should be replaced with admin, admin2, admin3 or admin4 depending on which integrated Web application server instance job needs to be investigated. As a reminder, Admin4 is the instance where the IBM Web Administration for i application runs.

A Clear Picture

After reading this article, you should have a clear picture of basic IBM i work management concepts related to starting and ending jobs and have a better understanding of what each ADMIN HTTP server jobs does. We also explained how the ADMIN HTTP server is able to be configured to communicate with the ADMIN integrated Web application server instance jobs to successfully run the IBM Web Administration for i application. If you should happen to have issues with any of the Web-based interfaces, you now have the tools to review the error and logs files to help determine what might be causing the issues.

IBM Systems Webinar Icon

View upcoming and on-demand (IBM Z, IBM i, AIX, Power Systems) webinars.
Register now →