Classify HTTP requests for workload management (WLM) by
first enabling WLM support in IBM® HTTP server. Then, map HTTP requests to one or more WLM transaction
classes.
Before you begin
- Have an understanding of workload management on the z/OS operating
system, including goal achievement, throughput, response time, and
turnaround time. Read the topic about what workload management is
and the topic about managing workloads on the z/OS® operating system.
- Install and configure IBM HTTP Server.
- Authorize the user ID that the IBM HTTP Server runs under to the BPX.WLMSERVER RACF® resource in the FACILITY class. Give the
user ID at least READ access.
About this task
First, enable WLM support. Then, map HTTP requests to one
or more WLM transaction classes. There are various ways to map HTTP
requests. Three examples are provided.
Procedure
- Enable WLM support by loading the mod_wlm module into the
server.
Append the following statement to the
httpd.conf file:
LoadModule wlm_module modules/mod_wlm.so
- Map HTTP requests to one or more WLM transaction classes.
You can map the HTTP requests in various ways. This step
provides three example substeps.
To classify your requests,
add directives to the httpd.conf file.
In all the examples, the value of the wlmSubSysType directive corresponds
to a subsystem type defined in WLM. This example uses CB, since CB
is defined in WLM and is reserved for WebSphere® Application server. This directive
can occur in the httpd.conf file only once. The
scope is global only. The directive cannot exist within any other
directives.
wlmSubSysType CB
- Map all HTTP requests to one WLM transaction class.
Applying
all HTTP requests to one WLM transaction class is the simplest approach.
The collection name of IHS corresponds to the collection name defined
in the Name heading Qualifier part of the WLM ISPF panels. All the
HTTP requests run in a WLM enclave associated with the WLM transaction
class of IHSDEFLT.
wlmSubSysType CB
wlmCollectionName IHS
wlmTranClass IHSDEFLT
- Map two applications to two WLM transaction classes.
You can
assign different WLM transaction classes to requests for different
applications.
A virtual host is defined to port 9080. Two LocationMatch
directives are defined, one for requests for the appABC application,
and one for requests for the appXYZ application. Within each LocationMatch
directive, the wlmTranClass directive is defined with different WLM
transaction class names.
HTTP requests for the appABC application
run in WLM enclaves associated with the IHSABCG1 WLM transaction class.
HTTP requests for the appXYZ application run in WLM enclaves associated
with the IHSXYZG1 WLM transaction class. Other requests are mapped
to IHSDEFLT.
<VirtualHost *:9080>
ServerName example.com
wlmSubSysType CB
wlmCollectionName IHS
wlmTranClass IHSDEFLT
<VirtualHost *:9080>
<LocationMatch "/wlmSample/appABC/(extra|special)/data">
wlmTranClass IHSABCG1
</LocationMatch>
<LocationMatch "/wlmSample/appXYZ/(extra|special)/data">
wlmTranClass IHSXYZG1
</LocationMatch>
</VirtualHost>
- Map requests for a specific domain to WLM transaction classes.
You can assign different WLM transaction classes to requests that
apply to a specific domain name and application.
A virtual host
is defined to port 9080. Only HTTP requests that have a domain name
of example.com can have a WLM transaction class assigned because the
ServerName directive limits the requests to the domain name of example.com.
One LocationMatch directive is defined for requests for the appABC
application. Within the LocationMatch directive, the wlmCollectionName
and wlmTranClass directives are defined. Requests for the appABC application
run in WLM enclaves associated with the IHSABCP1WLM transaction class.
A wlmCollectionName directive and a wlmTranClass directive are
also defined outside the LocationMatch directive. Any requests that
have a domain name of example.com in the URL but are not for the appABC
application run in WLM enclaves associated with the WLM transaction
class of IHSWSCG1. The IHSWSCG1 WLM transaction class has no corresponding
WLM collection name. Thus, the wlmCollectionName directive is set
to NA. A value of NA tells the IBM HTTP Server WLM module to not
set any WLM collection name when creating the enclave.
wlmSubSysType CB
<VirtualHost *:9080>
ServerName example.com
<LocationMatch "/wlmSample/appABC">
wlmCollectionName IHSMGT
wlmTranClass IHSABCP1
</LocationMatch>
wlmCollectionName NA
wlmTranClass IHSWSCG1
</VirtualHost>