(ZOS) Workload classification file
The workload classification document is a common XML file that classifies inbound HTTP, IIOP, message-driven bean (MDB), SIP, optimized local adapter, and mediation work for the z/OS workload manager.
Usage notes
This topic contains examples of the workload classification file with and without Reliability Availability and Serviceability (RAS) attributes. RAS attributes allow us to achieve request-level RAS granularity for HTTP requests, IIOP requests, MDB requests, and optimized local adapter requests. You specify these attributes on the http_classification_info element, the iiop_classification_info element, the classificationentry element, the sib_classification_info element, the wmqra_classification_info element, and the ola_classification_info element in the workload classification file.
We use the workload classification file when completing the tasks for classifying z/OS workload or enabling request-level RAS granularity.
Required elements
- <?xml version="1.0" encoding="UTF-8"?>
- Indicates that the workload classification document must be saved in ASCII to be processed by the application server. This statement is required.
- <!DOCTYPE Classification SYSTEM "Classifications.dtd">
- Provides the XML parser with the name of the DTD document provided with the product, and used to validate the workload classification document. The workload classification document that you write must follow the rules described in this DTD. We must add this statement to the workload classification document.
- Classification
- <Classification schema_version="1.0">
Indicates the root of the workload classification document. Every workload classification document must begin and end with this element. The schema_version attribute is required. The only supported schema_version is 1.0. The Classification element contains one or more InboundClassification elements. For inbound service integration work, the Classification element can also contain up to two SibClassification elements. If classifying inbound messages for delivery to message-driven beans using IBM MQ messaging provider activation specifications, the Classification element can contain one or more WMQRAClassification elements.
- InboundClassification
<InboundClassification type="iiop" schema_version="1.0" default_transaction_class="iiopdflt" default_iiop_application_name="application" default_iiop_module_name="module" default_iiop_component_name="component"> </InboundClassification>Use the following rules when using the InboundClassification element:
- The type attribute is required. The value must be internal, iiop, http, mdb, sip, or ola. Only one occurrence of an InboundClassification element can occur in the document for each type. There can be up to five InboundClassification elements in a document. The types do not have to be specified in a certain order in your classification document.
- The schema_version attribute is required. The value must be set to 1.0.
- The default_transaction_class attribute must be specified, and defines the default transaction class for work flows of the specified type. The string value must be a valid WLM transaction class, a null string (such as "") or a string containing eight or fewer blanks (such as " ").
- The InboundClassification elements cannot be nested. Each InboundClassification element must end before the next InboundClassification element or SibClassification element can begin.
- The default_iiop_application_name attribute is optional and defines the default application name for IIOP work flows that do not have an application name, module name or component name.
- The default_iiop_module_name attribute is optional and defines the default module name for IIOP work flows that do not have an application name, module name or component name.
- The default_iiop_component_name attribute is optional and defines the default component name for IIOP work flows that do not have an application name, module name or component name.
- CORBA requests are an IIOP work flow that does not have an application name, module name or component name.
- SibClassification
- <SibClassification type="jmsra | destinationmediation" schema_version="1.0" default_transaction_class="value">
Use the following rules when using the SibClassification element:
- The type attribute is required. The value must be jmsra or destinationmediation. There can be at most one SibClassification element in the document for each type. The types do not have to be specified in a certain order in your classification document.
- The schema_version attribute is required. The value must be set to 1.0.
- The default_transaction_class attribute must be specified, and defines the default transaction class for work flows of the specified type. The string value must be a valid WLM transaction class, a null string (such as "") or a string containing eight or fewer blanks (such as " ").
- The SibClassification elements cannot be nested. Each SibClassification element must end before the next InboundClassification element or SibClassification element can begin.
- WMQRAClassification
- <WMQRAClassification schema_version="1.0" default_transaction_class="value">
The following rules apply to the WMQRAClassification element:
- The schema_version attribute is required. The value must be set to 1.0.
- The default_transaction_class attribute must be specified, and defines the default transaction class for work flows of the specified type. The string value must be a valid WLM transaction class.
- The WMQRAClassification elements cannot be nested. Each WMQRAClassification element must end before any other classification elements can begin.
The rules and XML statements for classifying different types of work are similar, but there is slightly different syntax for each type. For more information about the syntax for each type of work, see the following sections:
- InboundClassification
- Internal Classification
- IIOP Classification
- HTTP classification
- MDB classification
- Optimized local adapter classification
- SIP Classification
- SibClassification
- WMQRAClassification
Internal Classification
The InboundClassification element with the attribute type="internal" defines the section of the document that is applicable to internal work, such as requests that are dispatched in a servant, that originate in the owning controller. An example of this element follows:
<InboundClassification type="internal" schema_version="1.0" default_transaction_class="value1">If an InboundClassification element with the type="internal" attribute is not specified, internal work is classified using the rules specified for IIOP work.
IIOP Classification
The InboundClassification element with the attribute type="iiop" defines the section of the document that is applicable to IIOP classification. An example of this element follows:
<InboundClassification type="iiop" schema_version="1.0" default_transaction_class="value1">We can classify IIOP work based on the following Java EE application artifacts:
- Application name
The name of the application containing the enterprise beans. It is the display name of the application, which might not be the name of the .ear file containing all the artifacts.
- Module name
The name of the Enterprise JavaBeans(EJB) .jar file containing one or more enterprise beans. There can be multiple EJB .jar files in an .ear file.
- Component name
The name of the EJB contained in a module (or EJB .jar file). There can be one or more enterprise beans contained in a .jar file.
- Method name
The name of a remote method on an EJB.
Classify IIOP work in various applications at any of these levels using the iiop_classification_info element.
- iiop_classification_info
<iiop_classification_info transaction_class="value1" application_name="value2" module_name="value3" component_name="value4" method_name="value5" description="value6" dispatch_timeout="value7" queue_timeout_percent ="value8" request_timeout="value9" stalled_thread_dump_action="traceback" cputimeused_limit="value11" cputimeused_dump_action="traceback" dpm_interval="value13" dpm_dump_action="traceback" SMF_request_activity_enabled="1" SMF_request_activity_timestamps="1" SMF_request_activity_security="1" SMF_request_activity_CPU_detail="1" classification_only_trace="1" message_tag="value20">With the iiop_classification_info element, we can build filters based on the application, module, component, and method names to assign TCLASS values, RAS attributes, or both to inbound requests. Use the following rules when using the iiop_classification_info element:
- transaction_class
- The transaction_class attribute is optional. If the attribute is not defined, it inherits the transaction class of its parent. The string value must be a valid WLM transaction class, a null string (such as "") or a string containing eight or fewer blanks (such as " "). By specifying a null or blank string, we can override a default TCLASS setting, or a TCLASS setting that was assigned by a higher level filter. Specifying a null or blank string means that we do not have a TCLASS value for the request.
- application_name, module_name, component_name, and method_name
- The attributes application_name, module_name, component_name, and method_name can be used as we need them. These attributes act as selectors or filters that either assign a transaction class or allow a nested iiop_classification_info element to assign the transaction class. We can specify the values of these attributes in the following ways:
- The exact name of the application, module, component, or method.
- A wild-card value. We can place an asterisk (*) anywhere in a string to indicate any string that starts with the string preceding the asterisk and ends with the string that follows the asterisk is considered a match. If the asterisk is at the end of the string, any string that starts with the string preceding the asterisk is considered a match.
Examples:
- The string Mar*61, matches Mar61, March61, and Mar20early61, but does not match March81 or AR61.
- The string MAR* matches MARCH, MAR61, and MARS, but does not match Mar61 or MAY61.
The value comparisons that are performed are case sensitive.
Use any combination of these attributes to make a classification filter. Use only the granularity required. For example, if there is only one application on the application server, the classification rules do not need to specify the application_name attribute.
RAS attributes
We can specify the following RAS attributes on the iiop_classification_info element. Nested elements inherit the RAS attributes of the parent element. Nested elements can override the RAS attributes of a parent element. All the RAS attributes are optional.
- dispatch_timeout
Amount of time that a control region waits after dispatching a request to the WLM queue. If the control region does not receive a response in the specified time, it issues a time out. The request is a request that the classification element has classified.
The attribute overrides the control_region_wlm_dispatch_timeout server property.
- queue_timeout_percent
The WLM queue timeout as a percentage of the dispatch timeout. The range for the percentage is 0 - 99. The queue timeout is the amount of time a request can remain on the WLM queue undispatched before the request times out. The request is a request that the classification element has classified.
The attribute overrides the control_region_iiop_queue_timeout_percent server property.
- request_timeout
Timeout value in seconds applied to outbound requests that originate under dispatched requests. The dispatched request is a request that the classification element has classified.
The attribute overrides the com.ibm.CORBA.RequestTimeout server property.
- stalled_thread_dump_action
Dump action that the server takes when requests exceed their dispatch timeout specified on the dispatch_timeout attribute. The request is a request that the classification element has classified. Valid values are svcdump, javacore, heapdump, traceback, javatdump, and none.
The attribute overrides the server_region_iiop_stalled_thread_dump_action server property.
- cputimeused_limit
The CPU timeout in milliseconds. The CPU timeout is the amount of CPU time allowed for the request before the request times out. The request is a request that the classification element has classified.
The attribute overrides the server_region_request_cputimeused_limit server property.
- cputimeused_dump_action
Dump action that the server takes when requests exceed their CPU timeout specified on the cputimeused_limit attribute. The request is a request that the classification element has classified.
Valid values are svcdump, javacore, heapdump, traceback, javatdump, and none.
The attribute overrides the server_region_cputimeused_dump_action server property.
- dpm_interval
Specifies in seconds the Dispatch Progress Monitor (DPM) interval. The DPM monitor triggers the DPM dump action on the interval for requests that the classification element has classified. Specify the DMP dump action on the dpm_dump_action attribute.
The attribute does not override any server properties. We must use the modify command to enable server-wide DPM intervals.
- dpm_dump_action
The DPM dump action taken at every DPM interval for requests that the classification element classifies. Specify the DPM interval on the dpm_interval attribute.
Valid values are svcdump, javacore, heapdump, traceback, javatdump, and none.
The attribute overrides the server_region_dpm_dump_action server property.
- SMF_request_activity_enabled
Specifies whether System Management Facilities (SMF) 120 subtype 9 records are collected for requests that the classification element classifies.
Valid values are 0 (no) and 1 (yes).
The attribute overrides the server_SMF_request_activity_enabled server property.
- SMF_request_activity_timestamps
Specifies whether to format timestamps in human-readable form on the SMF 120 subtype 9 record for requests. The requests are requests that the classification element has classified.
Valid values are 0 (no) and 1 (yes).
The attribute overrides the server_SMF_request_activity_timestamps server property.
- SMF_request_activity_security
Specifies whether the security data section of the SMF 120 subtype 9 record is collected for requests. The requests are requests that the classification element has classified.
Valid values are 0 (no) and 1 (yes).
The attribute overrides the server_SMF_request_activity_security server property.
- SMF_request_activity_CPU_detail
Specifies whether the CPU usage breakdown section of the SMF 120 subtype 9 record is collected for requests. The requests are requests that the classification element has classified.
Valid values are 0 (no) and 1 (yes).
The attribute overrides the server_SMF_request_activity_CPU_detail server property.
- classification_only_trace
Specifies whether to generate trace records for requests that the classification element classifies.
Valid values are 0 (no) and 1 (yes).
The attribute does not override any server properties. The TRACERECORD modify command overrides the classification_only_trace.
If any classification element has classification_only_trace set to 1, then classification level tracing is in effect for the application server. The only threads that generate trace records are threads that process requests that a classification element classifies. That classification element must define classification_only_trace="1". Any thread not processing such a request has trace collection disabled and does not generate trace records.
If no classification element defines classification_only_trace="1", then classification level tracing is not in effect for the application server. The server does not disable trace collection for any threads. All trace records are written to output as prescribed by the trace specification.
The classification_only_trace attribute does not affect how a trace specification is defined and activated. The attribute only affects which threads write trace records.
- message_tag
Specifies a string token that prints with all the trace records, log messages, and system messages generated for requests that the classification element classifies.
The attribute has a maximum of eight characters.
The attribute does not override any server properties.
Classification filters
- The iiop_classification_info elements can be nested in a hierarchical manner. By nesting the elements, we can create classification filters that are based on the attribute values. The following filter classifies requests on the EJB1 and EJB2 enterprise beans in the MyAPP1 application:
<iiop_classification_info transaction_class="FAST" application_name="MyAPP1" component_name="EJB1" /> <iiop_classification_info transaction_class="SLOW" application_name="MyAPP1" component_name="EJB2" />The following filter also classifies requests on EJB1 and EJB2 in the yAPP1 application, but also classifies requests on any other EJB in the application:
<iiop_classification_info transaction_class="MEDIUM" application_name="MyAPP1"> <iiop_classification_info transaction_class="FAST" component_name="EJB1" /> <iiop_classification_info transaction_class="SLOW" component_name="EJB2" /> </iiop_classification_info>- If we specify an attribute value that conflicts with the attribute value of the parent element, the lower-level filter is negated. An example of a child value that conflicts with the attribute value of the parent element follows:
<iiop_classification_info transaction_class="FAST" application_name="MyAPP1"> <iiop_classification_info transaction_class="SLOW" application_name="MyAPP2" /> </iiop_classification_info>In this example, EJB Requests in MyAPP2 would never be assigned to transaction class "SLOW" because the higher level filter only allows IIOP requests for application_name="MyAPP1" to be passed through to the lower-level filter.
- The first filter at a specific level that matches the attributes of the request is used, not the best or most restrictive filter. Therefore, the order specified filters is important.
<iiop_classification_info transaction_class="FAST" application_name="MyAPP" /> <iiop_classification_info transaction_class="SLOW" component_name="*" /> <iiop_classification_info transaction_class="MEDIUM" component_name="MySSB" /> </iiop_classification_info>In the preceding example, all the IIOP requests that are processed by enterprise beans in the MyAPP application are assigned a TCLASS value of SLOW. This assignment is done for any requests to the MySSB enterprise as well. Even though MySSB is assigned a transaction class, the filter is not applied because the first filter was applied and was assigned a TCLASS value of SLOW. The remaining list of filters at the same level is ignored.
- The description field is optional. However, we should use a description on all iiop_classification_info elements. The description string prints as part of the operator command support so we can identify the classification rules that are being used. Keep your descriptions reasonably short because they are displayed in the MVS™ console.
HTTP classification
The InboundClassification element with the attribute type="http" defines the section of the document that is applicable to HTTP classification. An example of this element follows:
<InboundClassification type="http" schema_version="1.0" default_transaction_class="value1">HTTP work can be classified based on the following J2EE artifacts:
- Virtual host name
Host name in the HTTP header to which the inbound request is being sent.
- Port number
Port on which the HTTP catcher is listening.
- URI (Uniform Resource Identifier)
The string that identifies the web application.
We can classify HTTP work in various applications at any of these levels using the http_classification_info element.
<http_classification_info transaction_class="value1" host="value2" port="value3" uri="value4" description="value5" dispatch_timeout="value6" queue_timeout_percent ="value7" request_timeout="value8" stalled_thread_dump_action="traceback" cputimeused_limit="value10" cputimeused_dump_action="traceback" dpm_interval="value12" dpm_dump_action="traceback" SMF_request_activity_enabled="1" SMF_request_activity_timestamps="1" SMF_request_activity_security="1" SMF_request_activity_CPU_detail="1" classification_only_trace="1" message_tag="value19" timeout_recovery="value20">With the http_classification_info element, we can build filters based on the host, port, and URI to assign TCLASS values, RAS attributes, or both to inbound requests. Use the following rules when we use the http_classification_info element:
- transaction_class
- The transaction_class attribute is optional. If the attribute is not defined, it inherits the transaction class of its parent. The string value must be a valid WLM transaction class, a null string (such as "") or a string containing eight or fewer blanks (such as " "). By specifying a null or blank string, we can override a default TCLASS setting, or a TCLASS setting that was assigned by a higher level filter. Specifying a null or blank string means that we do not have a TCLASS value for the request.
host, port, and uri
These attributes act as filters that either assign a transaction class or allow a nested http_classification_info element to assign the transaction class. Specify the values of these attributes in the following ways:
- The name of the host, port, or URI.
- Any value. Use the asterisk character to specify a match to any value between two forward slash characters or at the end of a string.
- A wildcard value. Place an asterisk anywhere in a string to indicate a match to any string that starts with the characters before the asterisk and ends with the characters that follow the asterisk. If we place the asterisk at the end of a string, any string that starts with the characters before the asterisk is considered a match. A single asterisk does not match a slash character. Use two consecutive asterisks to match any number of slash characters.
- If we do not specify a value for an attribute, all values for that attribute match.
- Examples:
- The string Mar*61 matches Mar61, March61, and Mar20early61, but Mar*61 does not match March81.
- The string MAR* matches MARCH, MAR61, and MARS, but MAR* does not match Mar61 or MAY61.
- The string /test*/* matches /testplan/index.html, but /test*/* does not match /testplan/beta/welcome.html.
- The string *.html matches /autoshow.html, but *.html does not match /springtime/autoshow.html.
- The string /go/set*/**/archive.jsp matches /go/setup/Revisions/2/archive.jsp, /go/seth/Revisions/2/archive.jsp, /go/set/archive.jsp.
The value comparisons are case sensitive.
Use any or all these attributes to make a classification filter. Use only the granularity required. For example, if only one application is on the application server, the classification rules do not need to specify the uri attribute.
RAS attributes:
We can specify the following RAS attributes on the http_classification_info element. Nested elements inherit the RAS attributes of the parent element. Nested elements can override the RAS attributes of a parent element. All the RAS attributes are optional.
- dispatch_timeout
Amount of time that a control region waits after dispatching a request to the WLM queue. If the control region does not receive a response in the specified time, it issues a time out. The request is a request that the classification element has classified.
The attribute overrides the following server properties:
- HTTP
- protocol_http_timeout_output
- HTTPS
- protocol_https_timeout_output
- queue_timeout_percent
The WLM queue timeout as a percentage of the dispatch timeout. The range for the percentage is 0 - 99. The queue timeout is the amount of time a request can remain on the WLM queue undispatched before the request times out. The request is a request that the classification element has classified.
The attribute overrides the following server properties:
- HTTP
- control_region_http_queue_timeout_percent
- HTTPS
- control_region_https_queue_timeout_percent
- request_timeout
Timeout value in seconds applied to outbound requests that originate under dispatched requests. The dispatched request is a request that the classification element has classified.
The attribute overrides the com.ibm.CORBA.RequestTimeout server property.
- stalled_thread_dump_action
Dump action that the server takes when requests exceed their dispatch timeout specified on the dispatch_timeout attribute. The request is a request that the classification element has classified. Valid values are svcdump, javacore, heapdump, traceback, javatdump, and none.
The attribute overrides the following server properties:
- HTTP
- server_region_http_stalled_thread_dump_action
- HTTPS
- server_region_https_stalled_thread_dump_action
- cputimeused_limit
The CPU timeout in milliseconds. The CPU timeout is the amount of CPU time allowed for the request before the request times out. The request is a request that the classification element has classified.
The attribute overrides the server_region_request_cputimeused_limit server property.
- cputimeused_dump_action
Dump action that the server takes when requests exceed their CPU timeout specified on the cputimeused_limit attribute. The request is a request that the classification element has classified.
Valid values are svcdump, javacore, heapdump, traceback, javatdump, and none.
The attribute overrides the server_region_cputimeused_dump_action server property.
- dpm_interval
Specifies in seconds the Dispatch Progress Monitor (DPM) interval. The DPM monitor triggers the DPM dump action on the interval for requests that the classification element has classified. Specify the DMP dump action on the dpm_dump_action attribute.
The attribute does not override any server properties. We must use the modify command to enable server-wide DPM intervals.
- dpm_dump_action
The DPM dump action taken at every DPM interval for requests that the classification element classifies. Specify the DPM interval on the dpm_interval attribute.
Valid values are svcdump, javacore, heapdump, traceback, javatdump, and none.
The attribute overrides the server_region_dpm_dump_action server property.
- SMF_request_activity_enabled
Specifies whether System Management Facilities (SMF) 120 subtype 9 records are collected for requests that the classification element classifies.
Valid values are 0 (no) and 1 (yes).
The attribute overrides the server_SMF_request_activity_enabled server property.
- SMF_request_activity_timestamps
Specifies whether to format timestamps in human-readable form on the SMF 120 subtype 9 record for requests. The requests are requests that the classification element has classified.
Valid values are 0 (no) and 1 (yes).
The attribute overrides the server_SMF_request_activity_timestamps server property.
- SMF_request_activity_security
Specifies whether the security data section of the SMF 120 subtype 9 record is collected for requests. The requests are requests that the classification element has classified.
Valid values are 0 (no) and 1 (yes).
The attribute overrides the server_SMF_request_activity_security server property.
- SMF_request_activity_CPU_detail
Specifies whether the CPU usage breakdown section of the SMF 120 subtype 9 record is collected for requests. The requests are requests that the classification element has classified.
Valid values are 0 (no) and 1 (yes).
The attribute overrides the server_SMF_request_activity_CPU_detail server property.
- classification_only_trace
Specifies whether to generate trace records for requests that the classification element classifies.
Valid values are 0 (no) and 1 (yes).
The attribute does not override any server properties. The TRACERECORD modify command overrides the classification_only_trace.
If any classification element has classification_only_trace set to 1, then classification level tracing is in effect for the application server. The only threads that generate trace records are threads that process requests that a classification element classifies. That classification element must define classification_only_trace="1". Any thread not processing such a request has trace collection disabled and does not generate trace records.
If no classification element defines classification_only_trace="1", then classification level tracing is not in effect for the application server. The server does not disable trace collection for any threads. All trace records are written to output as prescribed by the trace specification.
The classification_only_trace attribute does not affect how a trace specification is defined and activated. The attribute only affects which threads write trace records.
- message_tag
Specifies a string token that prints with all the trace records, log messages, and system messages generated for requests that the classification element classifies.
The attribute has a maximum of eight characters.
The attribute does not override any server properties.
- timeout_recovery
Action that the server takes when a request that the classification element classified exceeds its dispatch timeout. Specify the dispatch timeout on the dispatch_timeout attribute.
Valid values are servant and session.
When the attribute is set to servant, the servant address space processing the request terminates with an ABEND EC3 and a reason code 04130007. The controller address space sends a failure response to the client, then closes the socket associated with the request.
When the attribute is set to session, the controller address space sends a failure response to the client, then closes the socket associated with the request. The Servant address space is not terminated. The request is not disrupted, but instead is permitted to run to completion.
The attribute overrides the following server properties:
- HTTP
- protocol_http_timeout_output_recovery
- HTTPS
- protocol_https_timeout_output_recovery
Classification filters:
- We can nest the http_classification_info elements in a hierarchical manner. We can construct filters based on attribute names. Consider the two following filters:
<http_classification_info transaction_class="FAST" host="MyVHost1.com" uri="/MyWebApp1/*" /> <http_classification_info transaction_class="SLOW" host="MyVHost2.com" uri="/MyWebApp2/*" />
<http_classification_info transaction_class="MEDIUM" host="MyVHost1.com"> <http_classification_info transaction_class="FAST" uri="/MyWebApp1/*" /> <http_classification_info transaction_class="SLOW" uri="/MyWebApp2/*" /> </http_classification_info>Both filters classify requests to web applications that are identified by context roots /MyWebApp1 and /MyWebApp2 in the application server hosting web applications for virtual host MyVHost1.com. However, the second filter also classifies requests on any other context root in the application server.
- Specify an attribute name that is different from the attribute value of the parent element effectively negates the lower-level filter. For example,
<http_classification_info transaction_class="FAST" uri="/MyWebApp1/*"> <http_classification_info transaction_class="SLOW" uri="/MyWebApp2"> </http_classification_info> </http_classification_info>This example would never result in web applications with a context root of /MyWebApp2 being assigned to the transaction class SLOW. The high-level filter only allows HTTP requests with a context root of /MyWebApp1/* to be passed to a lower-level filter.
- The first filter that is at a specific level is used, not the best or most restrictive filter. Therefore, the order of the filters at each level is important. For example:
<http_classification_info transaction_class="FAST" host="MyVHost.com" /> <http_classification_info transaction_class="SLOW" uri="*" /> <http_classification_info transaction_class="MEDIUM" uri="/MyWebAppX/*" /> </http_classification_info>In this example, HTTP requests processed by the application server by the virtual host "MyVHost.com" are assigned a TCLASS value of SLOW. Even requests to the web application with context root /MyWebAppX are assigned a TCLASS value of SLOW because the filter was not applied. The first filter that matches is used for the TCLASS assignment, and the remainder of the filters at the same level is ignored.
- The description field is optional, however, we should use it on all the http_classification_info elements. The description is displayed when you monitor the transaction classes in the MVS console.
MDB classification
The InboundClassification element with the attribute type="mdb" defines the section of the document that applies to work for EJB 2.0 message-driven beans (MDBs) deployed with listener ports. An example of this element follows:
<InboundClassification type="mdb" schema_version="1.0" default_transaction_class="qrs">Each InboundClassification element can contain one or more endpoint elements with a messagelistenerport type defined. Define one endpoint element for each listener port defined in the server to associate transaction classes with the message-driven bean. An example of the endpoint element follows:
<endpoint type="messagelistenerport" name="IPVListenerPort" defaultclassification="MDBX" description="ABC">Use the following rules when defining your endpoint elements:
- The type attribute must always equal messagelistenerport.
- The name attribute corresponds to the listener for our endpoint element. The value of the name attribute must be the name of the listener port specified in the administration console for the server.
- The defaultclassification element is the default transaction class associated with the message-driven beans. The value of this attribute overrides the default transaction classification value.
- The description field is optional, however, we should use it on all the endpoint elements. The description is displayed when you monitor the transaction classes in the MVS console.
Each endpoint element can have zero, one, or more classificationentry elements. An example of a classification entry element follows:
<classificationentry selector="Location='East'" classification="MDB2" description="XYZ" dispatch_timeout="value1" queue_timeout_percent ="value2" request_timeout="value3" stalled_thread_dump_action="traceback" cputimeused_limit="value5" cputimeused_dump_action="traceback" dpm_interval="value7" dpm_dump_action="traceback" SMF_request_activity_enabled="1" SMF_request_activity_timestamps="1" SMF_request_activity_security="1" SMF_request_activity_CPU_detail="1" classification_only_trace="1" message_tag="value14"/>
- selector
Use the selector attribute of the classificationentry element to assign a transaction class to a message-driven bean that has a selector clause in its deployment descriptor. Use the following rules when defining your classificationentry elements:
- The value of the selector attribute must match exactly to the selector clause in the MDB deployment descriptor.
- The value of the selector attribute must have the correct syntax for an XML document. We must replace the < symbol with the < entity reference and the and > symbol with the > entity reference. Similarly, if we use an apostrophe or quotation mark, use the ' and " entity references.
- classification
The classification attribute is optional. If the attribute is not defined, it inherits the classification of its parent. The string value must be a valid WLM transaction class, a null string (such as "") or a string containing eight or fewer blanks (such as " "). By specifying a null or blank string, we can override a default TCLASS setting, or a TCLASS setting that was assigned by a higher level filter. Specifying a null or blank string means that we do not have a TCLASS value for the request.
RAS attributes:
We can specify the following RAS attributes on the classificationentry element. Nested elements inherit the RAS attributes of the parent element. Nested elements can override the RAS attributes of a parent element. All the RAS attributes are optional.
- dispatch_timeout
Amount of time that a control region waits after dispatching a request to the WLM queue. If the control region does not receive a response in the specified time, it issues a time out. The request is a request that the classification element has classified.
The attribute overrides the control_region_mdb_request_timeout server property.
- queue_timeout_percent
The WLM queue timeout as a percentage of the dispatch timeout. The range for the percentage is 0 - 99. The queue timeout is the amount of time a request can remain on the WLM queue undispatched before the request times out. The request is a request that the classification element has classified.
The attribute overrides the control_region_mdb_queue_timeout_percent server property.
- request_timeout
Timeout value in seconds applied to outbound requests that originate under dispatched requests. The dispatched request is a request that the classification element has classified.
The attribute overrides the com.ibm.CORBA.RequestTimeout server property.
- stalled_thread_dump_action
Dump action that the server takes when requests exceed their dispatch timeout specified on the dispatch_timeout attribute. The request is a request that the classification element has classified. Valid values are svcdump, javacore, heapdump, traceback, javatdump, and none.
The attribute overrides the server_region_mdb_stalled_thread_dump_action server property.
- cputimeused_limit
The CPU timeout in milliseconds. The CPU timeout is the amount of CPU time allowed for the request before the request times out. The request is a request that the classification element has classified.
The attribute overrides the server_region_request_cputimeused_limit server property.
- cputimeused_dump_action
Dump action that the server takes when requests exceed their CPU timeout specified on the cputimeused_limit attribute. The request is a request that the classification element has classified.
Valid values are svcdump, javacore, heapdump, traceback, javatdump, and none.
The attribute overrides the server_region_cputimeused_dump_action server property.
- dpm_interval
Specifies in seconds the Dispatch Progress Monitor (DPM) interval. The DPM monitor triggers the DPM dump action on the interval for requests that the classification element has classified. Specify the DMP dump action on the dpm_dump_action attribute.
The attribute does not override any server properties. We must use the modify command to enable server-wide DPM intervals.
- dpm_dump_action
The DPM dump action taken at every DPM interval for requests that the classification element classifies. Specify the DPM interval on the dpm_interval attribute.
Valid values are svcdump, javacore, heapdump, traceback, javatdump, and none.
The attribute overrides the server_region_dpm_dump_action server property.
- SMF_request_activity_enabled
Specifies whether System Management Facilities (SMF) 120 subtype 9 records are collected for requests that the classification element classifies.
Valid values are 0 (no) and 1 (yes).
The attribute overrides the server_SMF_request_activity_enabled server property.
- SMF_request_activity_timestamps
Specifies whether to format timestamps in human-readable form on the SMF 120 subtype 9 record for requests. The requests are requests that the classification element has classified.
Valid values are 0 (no) and 1 (yes).
The attribute overrides the server_SMF_request_activity_timestamps server property.
- SMF_request_activity_security
Specifies whether the security data section of the SMF 120 subtype 9 record is collected for requests. The requests are requests that the classification element has classified.
Valid values are 0 (no) and 1 (yes).
The attribute overrides the server_SMF_request_activity_security server property.
- SMF_request_activity_CPU_detail
Specifies whether the CPU usage breakdown section of the SMF 120 subtype 9 record is collected for requests. The requests are requests that the classification element has classified.
Valid values are 0 (no) and 1 (yes).
The attribute overrides the server_SMF_request_activity_CPU_detail server property.
- classification_only_trace
Specifies whether to generate trace records for requests that the classification element classifies.
Valid values are 0 (no) and 1 (yes).
The attribute does not override any server properties. The TRACERECORD modify command overrides the classification_only_trace.
If any classification element has classification_only_trace set to 1, then classification level tracing is in effect for the application server. The only threads that generate trace records are threads that process requests that a classification element classifies. That classification element must define classification_only_trace="1". Any thread not processing such a request has trace collection disabled and does not generate trace records.
If no classification element defines classification_only_trace="1", then classification level tracing is not in effect for the application server. The server does not disable trace collection for any threads. All trace records are written to output as prescribed by the trace specification.
The classification_only_trace attribute does not affect how a trace specification is defined and activated. The attribute only affects which threads write trace records.
- message_tag
Specifies a string token that prints with all the trace records, log messages, and system messages generated for requests that the classification element classifies.
The attribute has a maximum of eight characters.
The attribute does not override any server properties.
Optimized local adapter classification
The InboundClassification element with the attribute type="ola" defines the section of the document that is applicable to optimized local adapter classification. An example of this element follows:
<InboundClassification type="ola" schema_version="1.0" default_transaction_class="value1" >We can classify optimized local adapter work by adding a section for each EJB application that uses the service name or JNDI home name. Use a wildcard for the JNDI home name.
Classify optimized local adapter work in various applications at any of these levels using the ola_classification_info element.
- ola_classification_info
<ola_classification_info transaction_class="value1" propagate_transaction_name="value2" service_name="value3" description="value4" dispatch_timeout="value5" queue_timeout_percent ="value6" request_timeout="value7" stalled_thread_dump_action="traceback" cputimeused_limit="value9" cputimeused_dump_action="traceback" dpm_interval="value11" dpm_dump_action="traceback" SMF_request_activity_enabled="1" SMF_request_activity_timestamps="1" SMF_request_activity_security="1" SMF_request_activity_CPU_detail="1" classification_only_trace="1" message_tag="value18">With the ola_classification_info element, we can build filters based on the service or JNDI name. Use the name to assign TCLASS values, RAS attributes, or both to inbound requests. Use the following rules when using the ola_classification_info element:
- transaction_class
- The transaction_class attribute is optional. If the attribute is not defined, it inherits the transaction class of its parent. The string value must be a valid WLM transaction class, a null string (such as "") or a string containing eight or fewer blanks (such as " "). By specifying a null or blank string, we can override a default TCLASS setting, or a TCLASS setting that was assigned by a higher level filter. Specifying a null or blank string means that we do not have a TCLASS value for the request.
- propagate_transaction_name
- The propagate_transaction_name attribute is optional. If the attribute is specified, the string value must be true or false. By specifying a value of true, the WLM service class from Customer Information Control System (CICS ) is propagated to the application server on each request or on each matching request if the service_name filter is specified. The work dispatched in the application server through the optimized local adapter runs under the same service class as the client request.
- service_name
- The service_name attribute is optional. This attribute acts as a selector or filter that either assigns a transaction class or allows a nested ola_classification_info element to assign the transaction class. We can specify the value of this attribute in the following ways:
- The exact service name or JNDI home name of the EJB application to be driven.
- A wild-card value. We can place an asterisk (*) anywhere in a string to indicate any string that starts with the string preceding the asterisk and ends with the string that follows the asterisk is considered a match. If the asterisk is at the end of the string, any string that starts with the string preceding the asterisk is considered a match.
Examples:
- service_name="ejb/mySecondBean"
- service_name="ejb/my*Bean"
- service_name="ejb/my*"
- service_name="ejb/security/*"
CAUTION:
The value comparisons that the application server performs are case sensitive.
RAS attributes
We can specify the following RAS attributes on the ola_classification_info element. Nested elements inherit the RAS attributes of the parent element. Nested elements can override the RAS attributes of a parent element. All the RAS attributes are optional.
- dispatch_timeout
Amount of time that a control region waits after dispatching a request to the WLM queue. If the control region does not receive a response in the specified time, it issues a time out. The request is a request that the classification element has classified.
The attribute overrides the control_region_wlm_dispatch_timeout server property.
- queue_timeout_percent
The WLM queue timeout as a percentage of the dispatch timeout. The range for the percentage is 0 - 99. The queue timeout is the amount of time a request can remain on the WLM queue undispatched before the request times out. The request is a request that the classification element has classified.
The attribute overrides the control_region_iiop_queue_timeout_percent server property.
- request_timeout
Timeout value in seconds applied to outbound requests that originate under dispatched requests. The dispatched request is a request that the classification element has classified.
The attribute overrides the com.ibm.CORBA.RequestTimeout server property.
- stalled_thread_dump_action
Dump action that the server takes when requests exceed their dispatch timeout specified on the dispatch_timeout attribute. The request is a request that the classification element has classified. Valid values are svcdump, javacore, heapdump, traceback, javatdump, and none.
The attribute overrides the server_region_iiop_stalled_thread_dump_action server property.
- cputimeused_limit
The CPU timeout in milliseconds. The CPU timeout is the amount of CPU time allowed for the request before the request times out. The request is a request that the classification element has classified.
The attribute overrides the server_region_request_cputimeused_limit server property.
- cputimeused_dump_action
Dump action that the server takes when requests exceed their CPU timeout specified on the cputimeused_limit attribute. The request is a request that the classification element has classified.
Valid values are svcdump, javacore, heapdump, traceback, javatdump, and none.
The attribute overrides the server_region_cputimeused_dump_action server property.
- dpm_interval
Specifies in seconds the Dispatch Progress Monitor (DPM) interval. The DPM monitor triggers the DPM dump action on the interval for requests that the classification element has classified. Specify the DMP dump action on the dpm_dump_action attribute.
The attribute does not override any server properties. We must use the modify command to enable server-wide DPM intervals.
- dpm_dump_action
The DPM dump action taken at every DPM interval for requests that the classification element classifies. Specify the DPM interval on the dpm_interval attribute.
Valid values are svcdump, javacore, heapdump, traceback, javatdump, and none.
The attribute overrides the server_region_dpm_dump_action server property.
- SMF_request_activity_enabled
Specifies whether System Management Facilities (SMF) 120 subtype 9 records are collected for requests that the classification element classifies.
Valid values are 0 (no) and 1 (yes).
The attribute overrides the server_SMF_request_activity_enabled server property.
- SMF_request_activity_timestamps
Specifies whether to format timestamps in human-readable form on the SMF 120 subtype 9 record for requests. The requests are requests that the classification element has classified.
Valid values are 0 (no) and 1 (yes).
The attribute overrides the server_SMF_request_activity_timestamps server property.
- SMF_request_activity_security
Specifies whether the security data section of the SMF 120 subtype 9 record is collected for requests. The requests are requests that the classification element has classified.
Valid values are 0 (no) and 1 (yes).
The attribute overrides the server_SMF_request_activity_security server property.
- SMF_request_activity_CPU_detail
Specifies whether the CPU usage breakdown section of the SMF 120 subtype 9 record is collected for requests. The requests are requests that the classification element has classified.
Valid values are 0 (no) and 1 (yes).
The attribute overrides the server_SMF_request_activity_CPU_detail server property.
- classification_only_trace
Specifies whether to generate trace records for requests that the classification element classifies.
Valid values are 0 (no) and 1 (yes).
The attribute does not override any server properties. The TRACERECORD modify command overrides the classification_only_trace.
If any classification element has classification_only_trace set to 1, then classification level tracing is in effect for the application server. The only threads that generate trace records are threads that process requests that a classification element classifies. That classification element must define classification_only_trace="1". Any thread not processing such a request has trace collection disabled and does not generate trace records.
If no classification element defines classification_only_trace="1", then classification level tracing is not in effect for the application server. The server does not disable trace collection for any threads. All trace records are written to output as prescribed by the trace specification.
The classification_only_trace attribute does not affect how a trace specification is defined and activated. The attribute only affects which threads write trace records.
- message_tag
Specifies a string token that prints with all the trace records, log messages, and system messages generated for requests that the classification element classifies.
The attribute has a maximum of eight characters.
The attribute does not override any server properties.
Classification filters:
- The ola_classification_info elements can be nested in a hierarchical manner. By nesting the elements, we can create classification filters that are based on the attribute values.
<ola_classification_info transaction_class="MEDIUM" service_name="ejb/my*Bean"> <ola_classification_info transaction_class="FAST" service_name="ejb/myFastBean" /> <ola_classification_info transaction_class="SLOW" service_name="ejb/mySlowBean" /> </ola_classification_info>- The description field is optional. Use a description on all ola_classification_info elements. The description string prints as part of the operator command support so we can identify the classification rules that are being used. Keep your descriptions reasonably short because they are displayed in the MVS console.
SIP Classification
The InboundClassification element with the attribute type="sip" defines the section of the document that sets the default transaction class for SIP requests. An example of this element follows:
<InboundClassification type="sip" schema_version="1.0" default_transaction_class="value1">
JMS RA classification
The SibClassification element with the attribute type="jmsra" defines the section of the document that applies to work for message-driven beans (MDBs) deployed against JCA 1.5-compliant resources for use with the JCA resource adapter (RA) of the default messaging provider. An example of this element follows:
<SibClassification type="jmsra" schema_version="1.0" default_transaction_class="a">Each SibClassification element can contain one or more sib_classification_info elements. An example of a classification entry element follows:
<sib_classification_info transaction_class="sibb" selector="user.Location='East'" bus="bigrred" destination="abusqueue" description="Some words" discriminator="XPath Expression" dispatch_timeout="value1" queue_timeout_percent ="value2" request_timeout="value3" stalled_thread_dump_action="traceback" cputimeused_limit="value5" cputimeused_dump_action="traceback" dpm_interval="value7" dpm_dump_action="traceback" SMF_request_activity_enabled="1" SMF_request_activity_timestamps="1" SMF_request_activity_security="1" SMF_request_activity_CPU_detail="1" classification_only_trace="1" message_tag="value14"/>
- selector
- Use the selector attribute of the sib_classification_info element to assign a transaction class to a message-driven bean that has a selector clause in its deployment descriptor. Use the following rules when defining your sib_classification_info elements:
- The value of the selector attribute is an SQL expression that selects a message according to the values of the message properties. The syntax is that of a message selector in the JMS 1.1 specification, but it can operate on SIMessage messages (more than JMS messages). The syntax can select on system properties (including JMS headers, JMSX properties, and JMS_IBM_properties) and user properties (which must be prefixed by ".user" - for example, for the user property "Location", the selector would specify "user.Location" as shown in the preceding example). See topic on working with message properties.
- The value of the selector attribute must have the correct syntax for an XML document. We must replace the < symbol with the < entity reference and the > symbol with the > entity reference. Similarly, if we use an apostrophe or quotation mark, use the ' and " entity references.
- bus
- The name of the service integration bus on which the target destination is assigned. The classification applies to the bus named by this property, or to any bus if we do not specify this property. The destinations to which the classification applies depend on your use of the destination property.
- destination
- The name of the target bus destination to which the message has been delivered. This is the name of a queue or topic space. The classification applies to the destination named by this property, or any destination if we do not specify this property. The service integration buses to which the classification applies depend on your use of the bus property.
- discriminator
- The property applies only when the destination property names a topic space. This discriminator value is then an XPath expression that selects one or more topics within the topic space.
- description
- Although the description field is optional, we should use it on all the sib_classification_info elements. The description is displayed when you monitor the transaction classes in the MVS console.
RAS attributes
We can specify the following RAS attributes on the sib_classification_info element. Nested elements inherit the RAS attributes of the parent element. Nested elements can override the RAS attributes of a parent element. All the RAS attributes are optional.
- dispatch_timeout
Amount of time that a control region waits after dispatching a request to the WLM queue. If the control region does not receive a response in the specified time, it issues a time out. The request is a request that the classification element has classified.
The attribute overrides the control_region_wlm_dispatch_timeout server property.
- queue_timeout_percent
The WLM queue timeout as a percentage of the dispatch timeout. The range for the percentage is 0 - 99. The queue timeout is the amount of time a request can remain on the WLM queue undispatched before the request times out. The request is a request that the classification element has classified.
The attribute overrides the control_region_iiop_queue_timeout_percent server property.
- request_timeout
Timeout value in seconds applied to outbound requests that originate under dispatched requests. The dispatched request is a request that the classification element has classified.
The attribute overrides the com.ibm.CORBA.RequestTimeout server property.
- stalled_thread_dump_action
Dump action that the server takes when requests exceed their dispatch timeout specified on the dispatch_timeout attribute. The request is a request that the classification element has classified. Valid values are svcdump, javacore, heapdump, traceback, javatdump, and none.
The attribute overrides the server_region_iiop_stalled_thread_dump_action server property.
- cputimeused_limit
The CPU timeout in milliseconds. The CPU timeout is the amount of CPU time allowed for the request before the request times out. The request is a request that the classification element has classified.
The attribute overrides the server_region_request_cputimeused_limit server property.
- cputimeused_dump_action
Dump action that the server takes when requests exceed their CPU timeout specified on the cputimeused_limit attribute. The request is a request that the classification element has classified.
Valid values are svcdump, javacore, heapdump, traceback, javatdump, and none.
The attribute overrides the server_region_cputimeused_dump_action server property.
- dpm_interval
Specifies in seconds the Dispatch Progress Monitor (DPM) interval. The DPM monitor triggers the DPM dump action on the interval for requests that the classification element has classified. Specify the DMP dump action on the dpm_dump_action attribute.
The attribute does not override any server properties. We must use the modify command to enable server-wide DPM intervals.
- dpm_dump_action
The DPM dump action taken at every DPM interval for requests that the classification element classifies. Specify the DPM interval on the dpm_interval attribute.
Valid values are svcdump, javacore, heapdump, traceback, javatdump, and none.
The attribute overrides the server_region_dpm_dump_action server property.
- SMF_request_activity_enabled
Specifies whether System Management Facilities (SMF) 120 subtype 9 records are collected for requests that the classification element classifies.
Valid values are 0 (no) and 1 (yes).
The attribute overrides the server_SMF_request_activity_enabled server property.
- SMF_request_activity_timestamps
Specifies whether to format timestamps in human-readable form on the SMF 120 subtype 9 record for requests. The requests are requests that the classification element has classified.
Valid values are 0 (no) and 1 (yes).
The attribute overrides the server_SMF_request_activity_timestamps server property.
- SMF_request_activity_security
Specifies whether the security data section of the SMF 120 subtype 9 record is collected for requests. The requests are requests that the classification element has classified.
Valid values are 0 (no) and 1 (yes).
The attribute overrides the server_SMF_request_activity_security server property.
- SMF_request_activity_CPU_detail
Specifies whether the CPU usage breakdown section of the SMF 120 subtype 9 record is collected for requests. The requests are requests that the classification element has classified.
Valid values are 0 (no) and 1 (yes).
The attribute overrides the server_SMF_request_activity_CPU_detail server property.
- classification_only_trace
Specifies whether to generate trace records for requests that the classification element classifies.
Valid values are 0 (no) and 1 (yes).
The attribute does not override any server properties. The TRACERECORD modify command overrides the classification_only_trace.
If any classification element has classification_only_trace set to 1, then classification level tracing is in effect for the application server. The only threads that generate trace records are threads that process requests that a classification element classifies. That classification element must define classification_only_trace="1". Any thread not processing such a request has trace collection disabled and does not generate trace records.
If no classification element defines classification_only_trace="1", then classification level tracing is not in effect for the application server. The server does not disable trace collection for any threads. All trace records are written to output as prescribed by the trace specification.
The classification_only_trace attribute does not affect how a trace specification is defined and activated. The attribute only affects which threads write trace records.
- message_tag
Specifies a string token that prints with all the trace records, log messages, and system messages generated for requests that the classification element classifies.
The attribute has a maximum of eight characters.
The attribute does not override any server properties.
Each sib_classification_info element can contain one or more of these properties as needed to classify the work for a message. A sib_classification_info element cannot contain more than one instance of each property.
If a message matches several sib_classification_info elements, the element that appears first is used. For example, consider the following specifications:
<sib_classification_info bus="MyBus" transaction_class="a" /> <sib_classification_info destination="MyDest" transaction_class="b" />A message that arrives at destination MyDest from the service integration bus MyBus is assigned the classification "a". A message that arrives at MyDest from another bus is assigned the classification "b".
If a message does not match any sib_classification_info element in an enclosing SibClassification element, the message is assigned the default classification from the SibClassification element.
If a message does not match any sib_classification_info element in any SibClassification element, or if no SibClassification elements are defined, all work receives a built-in default classification with the value "SIBUS". We must perform z/OS Workload Manager actions required to use the TCLASS value "SIBUS", as described in Classifying z/OS workload.
Mediation classification
The SibClassification element with the attribute type="destinationmediation" defines the section of the document that applies to work for mediations assigned to destinations on a service integration bus. An example of this element follows:
<SibClassification type="destinationmediation" schema_version="1.0" default_transaction_class="b">Each SibClassification element can contain one or more sib_classification_info elements. An example of a classification entry element follows:
<sib_classification_info transaction_class="e" selector="user.Location='East'" bus="bigrred" destination="themoon" discriminator="sides/dark" description="n" dispatch_timeout="value1" queue_timeout_percent ="value2" request_timeout="value3" stalled_thread_dump_action="traceback" cputimeused_limit="value5" cputimeused_dump_action="traceback" dpm_interval="value7" dpm_dump_action="traceback" SMF_request_activity_enabled="1" SMF_request_activity_timestamps="1" SMF_request_activity_security="1" SMF_request_activity_CPU_detail="1" classification_only_trace="1" message_tag="value14"/>
- selector
- Use the selector attribute of the sib_classification_info element to assign a transaction class to a mediation that has a selector clause in its deployment descriptor. Use the following rules when defining your sib_classification_info elements:
- The value of the selector attribute is an SQL expression that selects a message according to the values of the message properties. The syntax is that of a message selector in the JMS 1.1 specification, but it can operate on SIMessage messages (more than JMS messages). The syntax can select on system properties (including JMS headers, JMSX properties, and JMS_IBM_properties) and user properties (which must be prefixed by ".user" - for example, for the user property "Location", the selector would specify "user.Location" as shown in the preceding example).
See topic on working with message properties.
- The value of the selector attribute must have the correct syntax for an XML document. We must replace the < symbol with the < entity reference and the > symbol with the > entity reference. Similarly, if we use an apostrophe or quotation mark, use the ' and " entity references.
- bus
- The name of the service integration bus on which the target destination is assigned. The classification applies to the bus named by this property, or to any bus if we do not specify this property. The destinations to which the classification applies depend on your use of the destination property.
- destination
- The name of the target bus destination to which the message has been delivered. This is the name of a queue or topic space. The classification applies to the destination named by this property, or any destination if we do not specify this property. The service integration buses to which the classification applies depend on your use of the bus property.
- discriminator
- The property applies only when the destination property names a topic space. This discriminator value is then an XPath expression that selects one or more topics within the topic space.
- description
- Although the description field is optional, we should use it on all the sib_classification_info elements. The description is displayed when you monitor the transaction classes in the MVS console.
RAS attributes
We can specify the following RAS attributes on the sib_classification_info element. Nested elements inherit the RAS attributes of the parent element. Nested elements can override the RAS attributes of a parent element. All the RAS attributes are optional.
- dispatch_timeout
Amount of time that a control region waits after dispatching a request to the WLM queue. If the control region does not receive a response in the specified time, it issues a time out. The request is a request that the classification element has classified.
The attribute overrides the control_region_wlm_dispatch_timeout server property.
- queue_timeout_percent
The WLM queue timeout as a percentage of the dispatch timeout. The range for the percentage is 0 - 99. The queue timeout is the amount of time a request can remain on the WLM queue undispatched before the request times out. The request is a request that the classification element has classified.
The attribute overrides the control_region_iiop_queue_timeout_percent server property.
- request_timeout
Timeout value in seconds applied to outbound requests that originate under dispatched requests. The dispatched request is a request that the classification element has classified.
The attribute overrides the com.ibm.CORBA.RequestTimeout server property.
- stalled_thread_dump_action
Dump action that the server takes when requests exceed their dispatch timeout specified on the dispatch_timeout attribute. The request is a request that the classification element has classified. Valid values are svcdump, javacore, heapdump, traceback, javatdump, and none.
The attribute overrides the server_region_iiop_stalled_thread_dump_action server property.
- cputimeused_limit
The CPU timeout in milliseconds. The CPU timeout is the amount of CPU time allowed for the request before the request times out. The request is a request that the classification element has classified.
The attribute overrides the server_region_request_cputimeused_limit server property.
- cputimeused_dump_action
Dump action that the server takes when requests exceed their CPU timeout specified on the cputimeused_limit attribute. The request is a request that the classification element has classified.
Valid values are svcdump, javacore, heapdump, traceback, javatdump, and none.
The attribute overrides the server_region_cputimeused_dump_action server property.
- dpm_interval
Specifies in seconds the Dispatch Progress Monitor (DPM) interval. The DPM monitor triggers the DPM dump action on the interval for requests that the classification element has classified. Specify the DMP dump action on the dpm_dump_action attribute.
The attribute does not override any server properties. We must use the modify command to enable server-wide DPM intervals.
- dpm_dump_action
The DPM dump action taken at every DPM interval for requests that the classification element classifies. Specify the DPM interval on the dpm_interval attribute.
Valid values are svcdump, javacore, heapdump, traceback, javatdump, and none.
The attribute overrides the server_region_dpm_dump_action server property.
- SMF_request_activity_enabled
Specifies whether System Management Facilities (SMF) 120 subtype 9 records are collected for requests that the classification element classifies.
Valid values are 0 (no) and 1 (yes).
The attribute overrides the server_SMF_request_activity_enabled server property.
- SMF_request_activity_timestamps
Specifies whether to format timestamps in human-readable form on the SMF 120 subtype 9 record for requests. The requests are requests that the classification element has classified.
Valid values are 0 (no) and 1 (yes).
The attribute overrides the server_SMF_request_activity_timestamps server property.
- SMF_request_activity_security
Specifies whether the security data section of the SMF 120 subtype 9 record is collected for requests. The requests are requests that the classification element has classified.
Valid values are 0 (no) and 1 (yes).
The attribute overrides the server_SMF_request_activity_security server property.
- SMF_request_activity_CPU_detail
Specifies whether the CPU usage breakdown section of the SMF 120 subtype 9 record is collected for requests. The requests are requests that the classification element has classified.
Valid values are 0 (no) and 1 (yes).
The attribute overrides the server_SMF_request_activity_CPU_detail server property.
- classification_only_trace
Specifies whether to generate trace records for requests that the classification element classifies.
Valid values are 0 (no) and 1 (yes).
The attribute does not override any server properties. The TRACERECORD modify command overrides the classification_only_trace.
If any classification element has classification_only_trace set to 1, then classification level tracing is in effect for the application server. The only threads that generate trace records are threads that process requests that a classification element classifies. That classification element must define classification_only_trace="1". Any thread not processing such a request has trace collection disabled and does not generate trace records.
If no classification element defines classification_only_trace="1", then classification level tracing is not in effect for the application server. The server does not disable trace collection for any threads. All trace records are written to output as prescribed by the trace specification.
The classification_only_trace attribute does not affect how a trace specification is defined and activated. The attribute only affects which threads write trace records.
- message_tag
Specifies a string token that prints with all the trace records, log messages, and system messages generated for requests that the classification element classifies.
The attribute has a maximum of eight characters.
The attribute does not override any server properties.
Each sib_classification_info element can contain one or more of these properties as needed to classify the work for a message. A sib_classification_info element cannot contain more than one instance of each property.
If a message matches several sib_classification_info elements, the element that appears first is used. For example, consider the following specifications:
<sib_classification_info transaction_class="e" destination="themoon" description="n" /> <sib_classification_info transaction_class="f" description="n" />A message that arrives at the mediated destination themoon is assigned the classification "e". A message that arrives at another mediated destination is assigned the classification "f".
If a message does not match any sib_classification_info element in an enclosing SibClassification element, the message is assigned the default classification from the SibClassification element.
If a message does not match any sib_classification_info element in any SibClassification element, or if no SibClassification elements are defined, all work receives a built-in default classification with the value "SIBUS". We must perform z/OS Workload Manager actions required to use the TCLASS value "SIBUS", as described in Classifying z/OS workload.
IBM MQ messaging provider classification
The WMQRAClassification element defines the section of the document that applies to work for message-driven beans (MDBs) deployed against IBM MQ messaging provider activation specifications. An example of this element follows:
<WMQRAClassification default_transaction_class="TC99" schema_version="1.0">A WMQRAClassification element can contain one or more wmqra_classification_info elements. Two examples of wmqra_classification_info elements follow:
<wmqra_classification_info transaction_class="TC_4" destination="topic://a/b/*" description="Any topics starting with a/b/ map to TC_4"/> <wmqra_classification_info transaction_class="TC_3" selector="JMSPriority>3 AND JMSPriority<8" destination="queue://QMGR1/Q1" queue_manager="QMGR1" description="medium priorities with a queue manager name of QMGR1 and a queue name of Q1 map to TC_3" dispatch_timeout="value1" queue_timeout_percent ="value2" request_timeout="value3" stalled_thread_dump_action="traceback" cputimeused_limit="value5" cputimeused_dump_action="traceback" dpm_interval="value7" dpm_dump_action="traceback" SMF_request_activity_enabled="1" SMF_request_activity_timestamps="1" SMF_request_activity_security="1" SMF_request_activity_CPU_detail="1" classification_only_trace="1" message_tag="value14"/>
- selector
- Use the selector attribute of the wmqra_classification_info element to assign a transaction class to a message based on its properties. This attribute can also be used to assign a transaction class to a message-driven bean that has a selector clause in its deployment descriptor:
- The value of the selector attribute is an SQL expression that selects a message according to the values of the message properties. The syntax is that of a message selector in the JMS 1.1 specification.
- The value of the selector attribute must have the correct syntax for an XML document. We must replace the < symbol with the < entity reference and the > symbol with the > entity reference. Similarly, if we use an apostrophe or quotation mark, use the ' and " entity references.
- destination
- A URI representing the IBM MQ destination to which the message has been delivered. The classification applies to the destination named by this property, or to any destination if we do not specify this property. If the URI represents a queue type destination it can optionally include a queue manager name, but that name is ignored and is not be used for classification. If the URI represents a topic type destination, it can make use of wildcards. For more information on wildcard support with IBM MQ see the IBM MQ information center.
- queue_manager
- The name of the IBM MQ queue manager to which the message has been delivered. The classification applies to the queue manager named by this property, or to any queue manager if we do not specify this property. The queue manager name must conform to IBM MQ naming conventions.
- Note that this field must not be set to the name of an IBM MQ queue sharing group. Instead, we must either create a wmqra_classification_info element for every queue manager in the queue sharing group, or base the classification on something else such as the destination attribute.
- description
- Although the description field is optional, we must use it on all the wmqra_classification_info elements.
RAS attributes:
We can specify the following RAS attributes on the wmqra_classification_info element. Nested elements inherit the RAS attributes of the parent element. Nested elements can override the RAS attributes of a parent element. All the RAS attributes are optional.
- dispatch_timeout
Amount of time that a control region waits after dispatching a request to the WLM queue. If the control region does not receive a response in the specified time, it issues a time out. The request is a request that the classification element has classified.
The attribute overrides the control_region_wlm_dispatch_timeout server property.
- queue_timeout_percent
The WLM queue timeout as a percentage of the dispatch timeout. The range for the percentage is 0 - 99. The queue timeout is the amount of time a request can remain on the WLM queue undispatched before the request times out. The request is a request that the classification element has classified.
The attribute overrides the control_region_iiop_queue_timeout_percent server property.
- request_timeout
Timeout value in seconds applied to outbound requests that originate under dispatched requests. The dispatched request is a request that the classification element has classified.
The attribute overrides the com.ibm.CORBA.RequestTimeout server property.
- stalled_thread_dump_action
Dump action that the server takes when requests exceed their dispatch timeout specified on the dispatch_timeout attribute. The request is a request that the classification element has classified. Valid values are svcdump, javacore, heapdump, traceback, javatdump, and none.
The attribute overrides the server_region_iiop_stalled_thread_dump_action server property.
- cputimeused_limit
The CPU timeout in milliseconds. The CPU timeout is the amount of CPU time allowed for the request before the request times out. The request is a request that the classification element has classified.
The attribute overrides the server_region_request_cputimeused_limit server property.
- cputimeused_dump_action
Dump action that the server takes when requests exceed their CPU timeout specified on the cputimeused_limit attribute. The request is a request that the classification element has classified.
Valid values are svcdump, javacore, heapdump, traceback, javatdump, and none.
The attribute overrides the server_region_cputimeused_dump_action server property.
- dpm_interval
Specifies in seconds the Dispatch Progress Monitor (DPM) interval. The DPM monitor triggers the DPM dump action on the interval for requests that the classification element has classified. Specify the DMP dump action on the dpm_dump_action attribute.
The attribute does not override any server properties. We must use the modify command to enable server-wide DPM intervals.
- dpm_dump_action
The DPM dump action taken at every DPM interval for requests that the classification element classifies. Specify the DPM interval on the dpm_interval attribute.
Valid values are svcdump, javacore, heapdump, traceback, javatdump, and none.
The attribute overrides the server_region_dpm_dump_action server property.
- SMF_request_activity_enabled
Specifies whether System Management Facilities (SMF) 120 subtype 9 records are collected for requests that the classification element classifies.
Valid values are 0 (no) and 1 (yes).
The attribute overrides the server_SMF_request_activity_enabled server property.
- SMF_request_activity_timestamps
Specifies whether to format timestamps in human-readable form on the SMF 120 subtype 9 record for requests. The requests are requests that the classification element has classified.
Valid values are 0 (no) and 1 (yes).
The attribute overrides the server_SMF_request_activity_timestamps server property.
- SMF_request_activity_security
Specifies whether the security data section of the SMF 120 subtype 9 record is collected for requests. The requests are requests that the classification element has classified.
Valid values are 0 (no) and 1 (yes).
The attribute overrides the server_SMF_request_activity_security server property.
- SMF_request_activity_CPU_detail
Specifies whether the CPU usage breakdown section of the SMF 120 subtype 9 record is collected for requests. The requests are requests that the classification element has classified.
Valid values are 0 (no) and 1 (yes).
The attribute overrides the server_SMF_request_activity_CPU_detail server property.
- classification_only_trace
Specifies whether to generate trace records for requests that the classification element classifies.
Valid values are 0 (no) and 1 (yes).
The attribute does not override any server properties. The TRACERECORD modify command overrides the classification_only_trace.
If any classification element has classification_only_trace set to 1, then classification level tracing is in effect for the application server. The only threads that generate trace records are threads that process requests that a classification element classifies. That classification element must define classification_only_trace="1". Any thread not processing such a request has trace collection disabled and does not generate trace records.
If no classification element defines classification_only_trace="1", then classification level tracing is not in effect for the application server. The server does not disable trace collection for any threads. All trace records are written to output as prescribed by the trace specification.
The classification_only_trace attribute does not affect how a trace specification is defined and activated. The attribute only affects which threads write trace records.
- message_tag
Specifies a string token that prints with all the trace records, log messages, and system messages generated for requests that the classification element classifies.
The attribute has a maximum of eight characters.
The attribute does not override any server properties.
Each wmqra_classification_info element can contain one or more of these properties as needed to classify the work for a message. A wmqra_classification_info element cannot contain more than one instance of each property.
If a message matches several wmqra_classification_info elements, the element that appears first is used. For example, consider the following specifications:
<wmqra_classification_info queue_manager="QMGR1" transaction_class="TC_1" /> <wmqra_classification_info destination="queue:///Q1" transaction_class="TC_2" />A message that arrives at destination Q1 on queue manager QMGR1 is assigned the classification "TC_1". A message that arrives at Q1 from another queue manager is assigned the classification "TC_2".
If a message does not match any wmqra_classification_info element in an enclosing WMQRAClassification element, the message is assigned the default classification from the WMQRAClassification element. If there are multiple WMQRAClassification elements, the default transaction class from the first WMQRAClassification element is used.
If no WMQRAClassification elements are defined, all work receives the default classification "WMQRA". We must perform z/OS Workload Manager actions required to use the TCLASS value "WMQRA", as described in Classifying z/OS workload.
Sample z/OS workload classification document without RAS attributes:
The sample z/OS workload classification document contains attributes for classifying inbound HTTP, IIOP, Session Initiation Protocol (SIP), and message-driven bean (MDB) work requests for the z/OS workload manager. This sample does not contain RAS attributes.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE Classification SYSTEM "Classification.dtd" > <Classification schema_version="1.0"> <!-- Internal Classification Rules --> <InboundClassification type="internal" schema_version="1.0" default_transaction_class="value1"/> <!-- IIOP Classification Rules --> <InboundClassification type="iiop" schema_version="1.0" default_transaction_class="A0"> <iiop_classification_info transaction_class="A1" application_name="IIOPStatelessSampleApp" module_name="StatelessSample.jar" component_name="Sample20" description="Sample20 EJB Classification"> <iiop_classification_info transaction_class="" method_name="echo" description="No TCLASS for echo()" /> <iiop_classification_info transaction_class="A1B" method_name="ping" description="Ping method" /> </iiop_classification_info> <iiop_classification_info application_name="*" module_name="*" component_name="*" transaction_class="A2" description="TCLASS the rest to A2"> <iiop_classification_info transaction_class="A2A" method_name="resetFilter" description="Sp1 case resetFilter()" /> </iiop_classification_info> </InboundClassification> <!-- HTTP Classification Rules --> <InboundClassification type="http" schema_version="1.0" default_transaction_class="M"> <http_classification_info transaction_class="N" host="myhost.yourcompany.com" description="Virtual Host myhost"> <http_classification_info transaction_class="O" port="9080" description="Def myhost HTTP reqs"> <http_classification_info transaction_class="Q" uri="/gcs/admin" description = "Gcs" /> <http_classification_info transaction_class="S" uri="/gcs/admin/1*" description="GCS login" /> <http_classification_info transaction_class="P" port="9081" description=" Def myhost HTTPS reqs "/> <http_classification_info transaction_class="" uri="/gcss/mgr/*" description="GCSS Mgr" /> </http_classification_info> </http_classification_info> </InboundClassification> <!-- SIP Classification Rules --> <InboundClassification type="sip" schema_version="1.0" default_transaction_class="value1"/> <!-- MDB Classification Rules --> <InboundClassification type="mdb" schema_version="1.0" default_transaction_class="qrs"> <endpoint type="messagelistenerport" name="IVPListenerPort" defaultclassification="MDBX" description="ABC"> <classificationentry selector="Location='East'" classification="MDB1" description="DEF"/> <classificationentry selector="Location<>'East'" classification="MDB2" description="XYZ" /> </endpoint> <endpoint type="messagelistenerport" name="SimpleMDBListenerPort" defaultclassification="MDBX" description="GHI" /> </InboundClassification> <SibClassification type="jmsra" schema_version="1.0" default_transaction_class="a"> <sib_classification_info transaction_class="b" selector="user.Location='East'" bus="magic" destination="nowhere" description="n" /> <sib_classification_info transaction_class="c" selector="user.Location='West'" bus="omni" description="n" /> </SibClassification> <SibClassification type="destinationmediation" schema_version="1.0" default_transaction_class="b"> <sib_classification_info transaction_class="e" selector="user.Location='East'" destination="themoon" discriminator="sides/dark" description="n" /> <sib_classification_info transaction_class="f" selector="user.Location='West'" description="n" /> </SibClassification> <WMQRAClassification default_transaction_class="TC99" schema_version="1.0"> <wmqra_classification_info transaction_class="TC_1" queue_manager="GOLD" description="gold queue manager maps to TC_1"/> <wmqra_classification_info transaction_class="TC_2" selector="JMSPriority>7" description="high priorities maps to TC_2"/> <wmqra_classification_info transaction_class="TC_3" selector="JMSPriority>3 AND JMSPriority<8" description="medium priorities maps to TC_3"/> </WMQRAClassification> <!-- OLA Classification Rules --> <InboundClassification type="ola" schema_version="1.0" default_transaction_class="A0"> <ola_classification_info transaction_class="FAST1" service_name="ejb/InteractiveTransactionBean" description="EJB classification for quick turnaround"/> <ola_classification_info transaction_class="SLOW1" service_name="ejb/BackgroundBean" description="EJB classification for low priority" /> <ola_classification_info propagate_transaction_name="true" service_name="ejb/CalledFromCICSBean" description="use same service class as client" /> </InboundClassification> <!-- Workload Classification Document for P5SR01x servers Change History _______________________________________________________ Activity Date Author Created 01-28-2005 IPL --> </Classification>Sample z/OS workload classification document containing RAS attributes:
The sample z/OS workload classification document contains attributes for classifying inbound HTTP, IIOP, and MDB work requests for the z/OS workload manager. This sample contains RAS attributes.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE Classification SYSTEM "Classification.dtd" > <Classification schema_version="1.0"> <!-- IIOP Classification Rules --> <InboundClassification type="iiop" schema_version="1.0" default_transaction_class="TC"> <!-- IIOP classification info for app "EJBApp1". The classification element defines a transaction_class of "TC1". This value overrides the default_transaction_class of the InboundClassification element ("TC"). The classification element also specifies a message_tag, which is applied to all requests that are classified underneath this classification element. --> <iiop_classification_info application_name="EJBApp1" transaction_class="TC1" message_tag="EJBApp1"> <!-- EJBApp1 contains a jar module named "MyEJB.jar" with an EJB named "MyEJBClass". The transaction_class is not defined for this element; thus the element inherits the transaction_class from its parent node, "TC1". This element also inherits the message_tag attribute from its parent node, "EJBApp1". In general, a classification element inherits all the RAS attributes from all its ancestor nodes, with nearer ancestor nodes (for example, direct parents) taking precedence over ancestor nodes further up the chain (for example, grandparents). --> <iiop_classification_info module_name="MyEJB.jar" component_name="MyEJBClass"> <!-- MyEJBClass contains methods named "helloWorld" and "goodbyeWorld". helloWorld is assigned a dispatch_timeout of 30 seconds and a queue_timeout_percent of 90, meaning that the queue timeout value is 90% of the dispatch_timeout value. The classification element also specifies SMF_request_activity_enabled=1, meaning SMF 120 subtype 9 records are collected for all requests targeted against the helloWorld method. Also note that this classification element does not define a transaction_class; therefore it inherits the transaction_class from the nearest ancestor element that defines one. In this case, the nearest ancestor element that defines a transaction_class is the grandparent element, "TC1". Note: if no ancestor elements define a transaction_class, then the classification element inherits the default_transaction_class of the InboundClassification element. The default_transaction_class on the InboundClassification is required. This classification element also inherits the message_tag attribute from its grandparent element, "EJBApp1". --> <iiop_classification_info method_name="helloWorld" dispatch_timeout="30" queue_timeout_percent="90" SMF_request_activity_enabled="1" /> <!-- The goodbyeWorld method specifies a dispatch_timeout of 60 seconds. The classification element also defines a transaction_class, "TC1gbye", which overrides the transaction_class defined by its ancestry. This element inherits the message_tag of its ancestry, "EJBApp1". --> <iiop_classification_info method_name="goodbyeWorld" transaction_class="TC1gbye" dispatch_timeout="60" /> </iiop_classification_info> </iiop_classification_info> <!-- IIOP classification info for app "EJBApp2". The classification element defines a dispatch_timeout of 15 seconds and a message_tag of "EJBApp2". The transaction_class is inherited from the default_transaction_class on the InboundClassification, "TC". All requests that are classified under this classification element have a 15 second dispatch timeout, and all trace records and log messages generated by those requests are tagged with the message_tag attribute value, "EJBApp2". --> <iiop_classification_info application_name="EJBApp2" dispatch_timeout="15" message_tag="EJBApp2"> <!-- EJBApp2 contains two jar modules, "MyEJB2a.jar" and "MyEJB2b.jar". The following two classification elements define a transaction_class for each jar module. No other attributes are defined. Both elements inherit the attributes of their ancestor nodes (dispatch_timeout="15" and message_tag="EJBApp2"). --> <iiop_classification_info module_name="MyEJB2a.jar" transaction_class="TC2a" /> <iiop_classification_info module_name="MyEJB2b.jar" transaction_class="TC2b" /> </iiop_classification_info> <!-- The following classification element defines attributes for a specific module, component, and method of the application "EJBApp3". The module is "MyEJB3.jar", component is "MyEJB3Class", and method is "method3". The transaction_class, dispatch_timeout queue_timeout_percent, SMF_request_activity_enabled, and SMF_request_activity_timestamps are all defined for this specific method in the EJBApp3 application. No other method on no other EJB within this application are assigned these attributes. --> <iiop_classification_info application_name="EJBApp3" module_name="MyEJB3.jar" component_name="MyEJB3Class" method_name="method3" transaction_class="TC3" dispatch_timeout="40" queue_timeout_percent="90" SMF_request_activity_enabled="1" SMF_request_activity_timestamps="1" /> </InboundClassification> <!-- Internal Classification Rules --> <InboundClassification type="internal" schema_version="1.0" default_transaction_class="internal" /> <!-- HTTP Classification Rules --> <InboundClassification type="http" schema_version="1.0" default_transaction_class="HTC"> <!-- The following classification element defines a transaction_class, "HTC8080", for all HTTP requests received on host "my.server.com" and port "8080". The classification element also defines RAS attributes dispatch_timeout, queue_timeout_percent, timeout_recovery, and stalled_thread_dump_action. All child elements underneath this element inherit these RAS attributes. --> <http_classification_info host="my.server.com" port="8080" transaction_class="HTC8080" dispatch_timeout="100" queue_timeout_percent="98" timeout_recovery="session" stalled_thread_dump_action="javacore"> <!-- The following classification element applies to all HTTP requests with a URI that begins with "/PlantsByWebSphere/". Every HTTP request received on host my.server.com and port 8080 with a URI that begins with /PlantsByWebSphere fall under this classification (note: host and port inherited from the parent element). The classification element also defines the message_tag attribute, "plantsbw", which are added to every trace record and log message generated by any /PlantsByWebSphere/* request. --> <http_classification_info uri="/PlantsByWebSphere/*" message_tag="plantsbw"> <!-- The following classification element applies to all HTTP requests with a URI that matches "/PlantsByWebSphere/*.jpg (for example, /PlantsByWebSphere/mypic.jpg, /PlantsByWebSphere/some/path/anotherpic.jpg). Again, this filter applies only to requests received on host my.server.com and port 8080 (as designated by an ancestor node). The classification element defines a transaction_class, "HTCPjpg" and a dispatch_timeout, "10". It inherits the remaining attributes from its ancestor nodes. --> <http_classification_info uri="*.jpg" transaction_class="HTCPjpg" dispatch_timeout="10" /> <!-- The following classification element applies to all HTTP requests with a URI that matches "/PlantsByWebSphere/*.html (for example, /PlantsByWebSphere/index.html, /PlantsByWebSphere/some/path/afile.html). --> <http_classification_info uri="*.html" transaction_class="HTChtml" /> </http_classification_info> </http_classification_info> <!-- The following classification element defines a transaction_class, "HTC80", for all HTTP requests received on port "80". The host attribute is not defined; thus, this element matches any host. --> <http_classification_info port="80" transaction_class="HTC80" dispatch_timeout="60" timeout_recovery="servant" message_tag="vanilla" /> </InboundClassification> <!-- MDB Classification Rules --> <InboundClassification type="mdb" schema_version="1.0" default_transaction_class="mdbdflt"> <!-- Endpoint for LP 1414, skLP1, for MDB Plan 'A' Test --> <endpoint type="messagelistenerport" name="skLP1" defaultclassification="lp1dft" description="Endpoint for LP 1414, skLP1, for MDB Plan 'A' Test"> <classificationentry selector="JMSCorrelationID='TestCase1'" classification="lp1s1" description="New MDB Sample, TestCase1" cputimeused_limit="200101" request_timeout="20" dispatch_timeout="30" dpm_interval="0" queue_timeout_percent="20" stalled_thread_dump_action="traceback" /> </endpoint> </InboundClassification> <!-- SIB Classification Rules --> <SibClassification type="jmsra" schema_version="1.0" default_transaction_class="Dclass"> <sib_classification_info transaction_class="Tclass" bus="testbus" destination="themoon" description="test1" dispatch_timeout="30" queue_timeout_percent="20" request_timeout="20" stalled_thread_dump_action="traceback" cputimeused_limit="200101" cputimeused_dump_action="traceback" dpm_interval="0" dpm_dump_action="traceback" classification_only_trace="1" message_tag="sibreqst" /> </SibClassification> </Classification>DTD:
The following DTD defines the elements and attributes used in the preceding sample workload classification documents.
<?xml version='1.0' encoding="UTF-8"?> <!ELEMENT Classification (InboundClassification|SibClassification|WMQRAClassification)+> <!ATTLIST Classification schema_version CDATA #REQUIRED> <!ELEMENT InboundClassification ((iiop_classification_info*|http_classification_info*|endpoint*|ola_classification_info*))> <!ATTLIST InboundClassification type (iiop|mdb|http|internal|sip|ola) #REQUIRED> <!ATTLIST InboundClassification default_transaction_class CDATA #REQUIRED> <!ATTLIST InboundClassification schema_version CDATA #REQUIRED> <!ATTLIST InboundClassification default_iiop_application_name CDATA #IMPLIED> <!ATTLIST InboundClassification default_iiop_module_name CDATA #IMPLIED> <!ATTLIST InboundClassification default_iiop_component_name CDATA #IMPLIED> <!ELEMENT iiop_classification_info (iiop_classification_info*)> <!-- inputs --> <!ATTLIST iiop_classification_info activity_workload_classification CDATA #IMPLIED> <!ATTLIST iiop_classification_info application_name CDATA #IMPLIED> <!ATTLIST iiop_classification_info component_name CDATA #IMPLIED> <!ATTLIST iiop_classification_info description CDATA #IMPLIED> <!ATTLIST iiop_classification_info method_name CDATA #IMPLIED> <!ATTLIST iiop_classification_info module_name CDATA #IMPLIED> <!-- outputs --> <!ATTLIST iiop_classification_info transaction_class CDATA #IMPLIED> <!ATTLIST iiop_classification_info dispatch_timeout CDATA #IMPLIED> <!-- control_region_wlm_dispatch_timeout --> <!ATTLIST iiop_classification_info queue_timeout_percent CDATA #IMPLIED> <!-- control_region_iiop_queue_timeout_percent --> <!ATTLIST iiop_classification_info request_timeout CDATA #IMPLIED> <!-- com.ibm.CORBA.RequestTimeout --> <!ATTLIST iiop_classification_info stalled_thread_dump_action (none|svcdump|javacore|heapdump|traceback|javatdump) #IMPLIED> <!-- server_region_iiop_stalled_thread_dump_action --> <!ATTLIST iiop_classification_info cputimeused_limit CDATA #IMPLIED> <!-- server_region_request_cputimeused_limit --> <!ATTLIST iiop_classification_info cputimeused_dump_action (none|svcdump|javacore|heapdump|traceback|javatdump) #IMPLIED> <!-- server_region_cputimeused_dump_action --> <!ATTLIST iiop_classification_info dpm_interval CDATA #IMPLIED> <!-- MODIFY [JOBNAME],DPM,IIOP= --> <!ATTLIST iiop_classification_info dpm_dump_action (none|svcdump|javacore|heapdump|traceback|javatdump) #IMPLIED> <!-- server_region_dpm_dump_action --> <!ATTLIST iiop_classification_info SMF_request_activity_enabled (0|1) #IMPLIED> <!-- server_SMF_request_activity_enabled --> <!ATTLIST iiop_classification_info SMF_request_activity_timestamps (0|1) #IMPLIED> <!-- server_SMF_request_activity_timestamps --> <!ATTLIST iiop_classification_info SMF_request_activity_security (0|1) #IMPLIED> <!-- server_SMF_request_activity_security --> <!ATTLIST iiop_classification_info SMF_request_activity_CPU_detail (0|1) #IMPLIED> <!-- server_SMF_request_activity_CPU_detail --> <!ATTLIST iiop_classification_info classification_only_trace (0|1) #IMPLIED> <!ATTLIST iiop_classification_info message_tag CDATA #IMPLIED> <!ELEMENT endpoint (classificationentry*)> <!ATTLIST endpoint defaultclassification CDATA #REQUIRED> <!ATTLIST endpoint name CDATA #REQUIRED> <!ATTLIST endpoint type (messagelistenerport) #REQUIRED> <!ATTLIST endpoint description CDATA #IMPLIED> <!ELEMENT classificationentry EMPTY> <!-- inputs --> <!ATTLIST classificationentry selector CDATA #REQUIRED> <!ATTLIST classificationentry description CDATA #IMPLIED> <!-- outputs --> <!ATTLIST classificationentry classification CDATA #REQUIRED> <!ATTLIST classificationentry dispatch_timeout CDATA #IMPLIED> <!-- control_region_mdb_request_timeout --> <!ATTLIST classificationentry queue_timeout_percent CDATA #IMPLIED> <!-- control_region_mdb_queue_timeout_percent --> <!ATTLIST classificationentry request_timeout CDATA #IMPLIED> <!-- com.ibm.CORBA.RequestTimeout --> <!ATTLIST classificationentry stalled_thread_dump_action (none|svcdump|javacore|heapdump|traceback|javatdump) #IMPLIED> <!-- server_region_mdb_stalled_thread_dump_action --> <!ATTLIST classificationentry cputimeused_limit CDATA #IMPLIED> <!-- server_region_request_cputimeused_limit --> <!ATTLIST classificationentry cputimeused_dump_action (none|svcdump|javacore|heapdump|traceback|javatdump) #IMPLIED> <!-- server_region_cputimeused_dump_action --> <!ATTLIST classificationentry dpm_interval CDATA #IMPLIED> <!-- MODIFY [JOBNAME],DPM,IIOP= --> <!ATTLIST classificationentry dpm_dump_action (none|svcdump|javacore|heapdump|traceback|javatdump) #IMPLIED> <!-- server_region_dpm_dump_action --> <!ATTLIST classificationentry SMF_request_activity_enabled (0|1) #IMPLIED> <!-- server_SMF_request_activity_enabled --> <!ATTLIST classificationentry SMF_request_activity_timestamps (0|1) #IMPLIED> <!-- server_SMF_request_activity_timestamps --> <!ATTLIST classificationentry SMF_request_activity_security (0|1) #IMPLIED> <!-- server_SMF_request_activity_security --> <!ATTLIST classificationentry SMF_request_activity_CPU_detail (0|1) #IMPLIED> <!-- server_SMF_request_activity_CPU_detail --> <!ATTLIST classificationentry classification_only_trace (0|1) #IMPLIED> <!ATTLIST classificationentry message_tag CDATA #IMPLIED> <!ELEMENT http_classification_info (http_classification_info*)> <!-- inputs --> <!ATTLIST http_classification_info host CDATA #IMPLIED> <!ATTLIST http_classification_info port CDATA #IMPLIED> <!ATTLIST http_classification_info uri CDATA #IMPLIED> <!ATTLIST http_classification_info description CDATA #IMPLIED> <!ATTLIST http_classification_info transaction_class CDATA #IMPLIED> <!-- outputs --> <!ATTLIST http_classification_info dispatch_timeout CDATA #IMPLIED> <!-- protocol_http_timeout_output --> <!ATTLIST http_classification_info queue_timeout_percent CDATA #IMPLIED> <!-- control_region_http_queue_timeout_percent --> <!ATTLIST http_classification_info request_timeout CDATA #IMPLIED> <!-- com.ibm.CORBA.RequestTimeout --> <!ATTLIST http_classification_info stalled_thread_dump_action (none|svcdump|javacore|heapdump|traceback|javatdump) #IMPLIED> <!-- server_region_http_stalled_thread_dump_action --> <!ATTLIST http_classification_info cputimeused_limit CDATA #IMPLIED> <!-- server_region_request_cputimeused_limit --> <!ATTLIST http_classification_info cputimeused_dump_action (none|svcdump|javacore|heapdump|traceback|javatdump) #IMPLIED> <!-- server_region_cputimeused_dump_action --> <!ATTLIST http_classification_info dpm_interval CDATA #IMPLIED> <!-- MODIFY [JOBNAME],DPM,HTTP= --> <!ATTLIST http_classification_info dpm_dump_action (none|svcdump|javacore|heapdump|traceback|javatdump) #IMPLIED> <!-- server_region_dpm_dump_action --> <!ATTLIST http_classification_info SMF_request_activity_enabled (0|1) #IMPLIED> <!-- server_SMF_request_activity_enabled --> <!ATTLIST http_classification_info SMF_request_activity_timestamps (0|1) #IMPLIED> <!-- server_SMF_request_activity_timestamps --> <!ATTLIST http_classification_info SMF_request_activity_security (0|1) #IMPLIED> <!-- server_SMF_request_activity_security --> <!ATTLIST http_classification_info SMF_request_activity_CPU_detail (0|1) #IMPLIED> <!-- server_SMF_request_activity_CPU_detail --> <!ATTLIST http_classification_info classification_only_trace (0|1) #IMPLIED> <!ATTLIST http_classification_info message_tag CDATA #IMPLIED> <!ATTLIST http_classification_info timeout_recovery (servant|session) #IMPLIED> <!-- protocol_http_timeout_output_recovery --> <!ELEMENT ola_classification_info (ola_classification_info*)> <!ATTLIST ola_classification_info transaction_class CDATA #IMPLIED> <!ATTLIST ola_classification_info propagate_transaction_name (true|false) #IMPLIED> <!ATTLIST ola_classification_info service_name CDATA #IMPLIED> <!ATTLIST ola_classification_info description CDATA #IMPLIED> <!ATTLIST ola_classification_info dispatch_timeout CDATA #IMPLIED> <!-- control_region_wlm_dispatch_timeout --> <!ATTLIST ola_classification_info queue_timeout_percent CDATA #IMPLIED> <!-- control_region_iiop_queue_timeout_percent --> <!ATTLIST ola_classification_info request_timeout CDATA #IMPLIED> <!-- com.ibm.CORBA.RequestTimeout --> <!ATTLIST ola_classification_info stalled_thread_dump_action (none|svcdump|javacore|heapdump|traceback|javatdump) #IMPLIED> <!-- server_region_iiop_stalled_thread_dump_action --> <!ATTLIST ola_classification_info cputimeused_limit CDATA #IMPLIED> <!-- server_region_request_cputimeused_limit --> <!ATTLIST ola_classification_info cputimeused_dump_action (none|svcdump|javacore|heapdump|traceback|javatdump) #IMPLIED> <!-- server_region_cputimeused_dump_action --> <!ATTLIST ola_classification_info dpm_interval CDATA #IMPLIED> <!-- MODIFY [JOBNAME],DPM,IIOP= --> <!ATTLIST ola_classification_info dpm_dump_action (none|svcdump|javacore|heapdump|traceback|javatdump) #IMPLIED> <!-- server_region_dpm_dump_action --> <!ATTLIST ola_classification_info SMF_request_activity_enabled (0|1) #IMPLIED> <!-- server_SMF_request_activity_enabled --> <!ATTLIST ola_classification_info SMF_request_activity_timestamps (0|1) #IMPLIED> <!-- server_SMF_request_activity_timestamps --> <!ATTLIST ola_classification_info SMF_request_activity_security (0|1) #IMPLIED> <!-- server_SMF_request_activity_security --> <!ATTLIST ola_classification_info SMF_request_activity_CPU_detail (0|1) #IMPLIED> <!-- server_SMF_request_activity_CPU_detail --> <!ATTLIST ola_classification_info classification_only_trace (0|1) #IMPLIED> <!ATTLIST ola_classification_info message_tag CDATA #IMPLIED> <!ELEMENT SibClassification (sib_classification_info+)> <!ATTLIST SibClassification type (jmsra|destinationmediation) #REQUIRED> <!ATTLIST SibClassification default_transaction_class CDATA #REQUIRED> <!ATTLIST SibClassification schema_version CDATA #REQUIRED> <!ELEMENT sib_classification_info EMPTY> <!-- inputs --> <!ATTLIST sib_classification_info selector CDATA #IMPLIED> <!ATTLIST sib_classification_info bus CDATA #IMPLIED> <!ATTLIST sib_classification_info destination CDATA #IMPLIED> <!ATTLIST sib_classification_info discriminator CDATA #IMPLIED> <!ATTLIST sib_classification_info description CDATA #IMPLIED> <!-- outputs --> <!ATTLIST sib_classification_info transaction_class CDATA #REQUIRED> <!ATTLIST sib_classification_info dispatch_timeout CDATA #IMPLIED> <!-- control_region_wlm_dispatch_timeout --> <!ATTLIST sib_classification_info queue_timeout_percent CDATA #IMPLIED> <!-- control_region_iiop_queue_timeout_percent --> <!ATTLIST sib_classification_info request_timeout CDATA #IMPLIED> <!-- com.ibm.CORBA.RequestTimeout --> <!ATTLIST sib_classification_info stalled_thread_dump_action (none|svcdump|javacore|heapdump|traceback|javatdump) #IMPLIED> <!-- server_region_iiop_stalled_thread_dump_action --> <!ATTLIST sib_classification_info cputimeused_limit CDATA #IMPLIED> <!-- server_region_request_cputimeused_limit --> <!ATTLIST sib_classification_info cputimeused_dump_action (none|svcdump|javacore|heapdump|traceback|javatdump) #IMPLIED> <!-- server_region_cputimeused_dump_action --> <!ATTLIST sib_classification_info dpm_interval CDATA #IMPLIED> <!-- MODIFY [JOBNAME],DPM,IIOP= --> <!ATTLIST sib_classification_info dpm_dump_action (none|svcdump|javacore|heapdump|traceback|javatdump) #IMPLIED> <!-- server_region_dpm_dump_action --> <!ATTLIST sib_classification_info SMF_request_activity_enabled (0|1) #IMPLIED> <!-- server_SMF_request_activity_enabled --> <!ATTLIST sib_classification_info SMF_request_activity_timestamps (0|1) #IMPLIED> <!-- server_SMF_request_activity_timestamps --> <!ATTLIST sib_classification_info SMF_request_activity_security (0|1) #IMPLIED> <!-- server_SMF_request_activity_security --> <!ATTLIST sib_classification_info SMF_request_activity_CPU_detail (0|1) #IMPLIED> <!-- server_SMF_request_activity_CPU_detail --> <!ATTLIST sib_classification_info classification_only_trace (0|1) #IMPLIED> <!ATTLIST sib_classification_info message_tag CDATA #IMPLIED> <!ELEMENT WMQRAClassification (wmqra_classification_info+)> <!ATTLIST WMQRAClassification default_transaction_class CDATA #REQUIRED> <!ATTLIST WMQRAClassification schema_version CDATA #REQUIRED> <!ELEMENT wmqra_classification_info EMPTY> <!-- inputs --> <!ATTLIST wmqra_classification_info selector CDATA #IMPLIED> <!ATTLIST wmqra_classification_info queue_manager CDATA #IMPLIED> <!ATTLIST wmqra_classification_info destination CDATA #IMPLIED> <!ATTLIST wmqra_classification_info description CDATA #IMPLIED> <!-- outputs --> <!ATTLIST wmqra_classification_info transaction_class CDATA #REQUIRED> <!ATTLIST wmqra_classification_info dispatch_timeout CDATA #IMPLIED> <!-- control_region_wlm_dispatch_timeout --> <!ATTLIST wmqra_classification_info queue_timeout_percent CDATA #IMPLIED> <!-- control_region_iiop_queue_timeout_percent --> <!ATTLIST wmqra_classification_info request_timeout CDATA #IMPLIED> <!-- com.ibm.CORBA.RequestTimeout --> <!ATTLIST wmqra_classification_info stalled_thread_dump_action (none|svcdump|javacore|heapdump|traceback|javatdump) #IMPLIED> <!-- server_region_iiop_stalled_thread_dump_action --> <!ATTLIST wmqra_classification_info cputimeused_limit CDATA #IMPLIED> <!-- server_region_request_cputimeused_limit --> <!ATTLIST wmqra_classification_info cputimeused_dump_action (none|svcdump|javacore|heapdump|traceback|javatdump) #IMPLIED> <!-- server_region_cputimeused_dump_action --> <!ATTLIST wmqra_classification_info dpm_interval CDATA #IMPLIED> <!-- MODIFY [JOBNAME],DPM,IIOP= --> <!ATTLIST wmqra_classification_info dpm_dump_action (none|svcdump|javacore|heapdump|traceback|javatdump) #IMPLIED> <!-- server_region_dpm_dump_action --> <!ATTLIST wmqra_classification_info SMF_request_activity_enabled (0|1) #IMPLIED> <!-- server_SMF_request_activity_enabled --> <!ATTLIST wmqra_classification_info SMF_request_activity_timestamps (0|1) #IMPLIED> <!-- server_SMF_request_activity_timestamps --> <!ATTLIST wmqra_classification_info SMF_request_activity_security (0|1) #IMPLIED> <!-- server_SMF_request_activity_security --> <!ATTLIST wmqra_classification_info SMF_request_activity_CPU_detail (0|1) #IMPLIED> <!-- server_SMF_request_activity_CPU_detail --> <!ATTLIST wmqra_classification_info classification_only_trace (0|1) #IMPLIED> <!ATTLIST wmqra_classification_info message_tag CDATA #IMPLIED>Example classification of an HTTP inbound request:
Use the following http request with the previously described sample z/OS workload classification document containing RAS attributes:
http://my.server.com:8080/PlantsByWebSphere/plants/newOrder.html
Because this request is an HTTP request, the application server scans only the http_classification_info elements. The application server scans the elements in the order that they occur in the workload classification file.
The application server finds the following http_classification_info element first in the sample z/OS workload classification document containing RAS attributes:
<http_classification_info host="my.server.com" port="8080" transaction_class="HTC8080" dispatch_timeout="100" queue_timeout_percent="98" timeout_recovery="session" stalled_thread_dump_action="javacore">This element has input attributes and values of host="my.server.com" and port="8080". Since these attributes match the inbound HTTP request, the application server descends into this element and compares the child nodes. The application server finds the following child element:<http_classification_info uri="/PlantsByWebSphere/*" message_tag="plantsbw">The child element defines the input attribute and value of uri="/PlantsByWebSphere/*", which matches the URI of the inbound request URI. The application server then scans the children of the element. The application server finds the first child element:<http_classification_info uri="*.jpg" transaction_class="HTCPjpg" dispatch_timeout="10" />This child element contains the uri="*.jpg" attribute and value. Since this attribute-value pair does not match the input URI, the application server moves to the next child element. The application server finds the second child element:<http_classification_info uri="*.html" transaction_class="HTChtml" />This child element contains the uri="*.html" attribute and value, which matches the input URI.Since no further child elements exist, the classification element classifies the request. The application server assigns the request all the output attributes from this classification element and all its ancestor elements. The following attribute-value pairs are a complete list of output attribute-value pairs that the application server assigns to the request:
dispatch_timeout="100" queue_timeout_percent="98" timeout_recovery="session" stalled_thread_dump_action="javacore" message_tag="plantsbw" transaction_class="HTChtml"The application server reads any RAS attributes not defined in the workload classification file from the server-wide configuration and assigns them to the request. The relevant server-wide configuration properties, including which ones the classification data overrode, are in the following list:protocol_http_timeout_output -- overridden by dispatch_timeout control_region_http_queue_timeout_percent -- overridden by queue_timeout_percent com.ibm.CORBA.RequestTimeout server_region_http_stalled_thread_dump_action -- overridden by stalled_thread_dump_action server_region_request_cputimeused_limit server_region_cputimeused_dump_action server_region_dpm_dump_action server_SMF_request_activity_enabled server_SMF_request_activity_timestamps server_SMF_request_activity_CPU_detail protocol_http_timeout_output_recovery -- overridden by timeout_recoveryFor any server-wide configuration properties that the classification data does not override, the request inherits the server-wide property value.Example classification of an IIOP inbound request:
Use the following IIOP request with the previously described sample z/OS workload classification document containing RAS attributes:
IIOP inbound request for MyEJB2bBean.someMethod() in module MyEJB2b.jar from application EJBApp2.
Because the inbound request is an IIOP request, the application server scans only the iiop_classification_info elements. The application server finds the following iiop_classification_info element first in the sample z/OS workload classification document containing RAS attributes:
<iiop_classification_info application_name="EJBApp1" transaction_class="TC1" message_tag="EJBApp1">This element has an input attribute and value of application_name="EJBApp1". The application name of EJBApp1 on the application_name attribute does not match the application name of EJBApp2 from the inbound request. Therefore, the application server skips this classification element and all of its child elements, and moves to the next element. The application server finds the next element:<iiop_classification_info application_name="EJBApp2" dispatch_timeout="15" message_tag="EJBApp2">This element has an input attribute and value of application_name="EJBApp2". Because this attribute-value pair matches the application name of the inbound request, the scanner descends into this element. The application server finds the first child element:<iiop_classification_info module_name="MyEJB2a.jar" transaction_class="TC2a" />This element contains the input attribute and value of module_name="MyEJB2a.jar". Because this attribute-value pair does not match the MyEJB2b.jar module name of the inbound request, the application server scans the next child element:<iiop_classification_info module_name="MyEJB2b.jar" transaction_class="TC2b" />This element contains the attribute and value of module_name="MyEJB2b.jar". The module name of yEJB2b.jar on the module_name attribute matches the module name of the inbound request. Since for no further child elements exist, the application server classifies the request to this element. The request inherits all the output attributes from this element and all the ancestor elements. The following attribute-value pairs are a complete list of output attribute-value pairs that the application server assigns to the request:dispatch_timeout="15" message_tag="EJBApp2" transaction_class="TC2b"The application server reads any RAS attributes not defined in the workload classification file from the server-wide configuration and assigns them to the request. The relevant server-wide configuration properties, including which ones the classification data overrode, are in the following list:control_region_wlm_dispatch_timeout -- overridden by dispatch_timeout control_region_iiop_queue_timeout_percent com.ibm.CORBA.RequestTimeout server_region_iiop_stalled_thread_dump_action server_region_request_cputimeused_limit server_region_cputimeused_dump_action server_region_dpm_dump_action server_SMF_request_activity_enabled server_SMF_request_activity_timestamps server_SMF_request_activity_CPU_detailFor any server-wide configuration properties that the classification data does not override, the request inherits the server-wide property value.
Related:
Workload management (WLM) for z/OS Enable request-level Reliability Availability and Serviceability (RAS) granularity Application server custom properties for z/OS