IBM Support

Performance Issues With Current Queue Manager Status

Troubleshooting


Problem

Current Queue Manager Status (QMCURSTAT) attribute group may cause high CPU usage when the monitored queue managers have a large number of queues or channels.

Symptom

In an environment where monitored queue managers have a large number of queues and channels, you might notice the following symptoms after migrating to 7.1.0 release.

  • Considerable increase on CPU resource assumption in comparison to prior releases.
  • Slow response for the Current Queue Manager Status workspace.

Cause

ITCAM agents for WebSphere Messaging 7.1.0 and OMEGAMON XE for Messaging on z/OS 7.1.0 introduce new attributes for the real-time queue and channel performance metrics to the Current Queue Manager Status (QMCURSTAT) attribute group. Data collection of these new attributes need to inquire about attributes of every single queue and channel. This can cause high CPU usage if a large number of queues or channels are defined in the queue managers.

Environment

Both distributed and z/OS

Resolving The Problem

ITCAM agents for WebSphere Messaging 7.1.0 and OMEGAMON XE for Messaging on z/OS 7.1.0 have made performance improvements to reduce the CPU resource consumption on the Current Queue Manager Status attribute group. The processing of situations defined on this attribute group is optimized not to collect the real-time queue and channel metrics if the situation evaluation doesn’t rely on those attributes. Additionally, it provides a way to turn off the collection of the real-time queue and channel metrics for TEP workspaces, enhanced 3270ui workspaces and history by customizing the associated queries.

Prerequisite:

To leverage the performance improvement discussed in this document, the following maintenance needs to be installed on distributed and/or z/OS.

ITCAM agents for WebSphere Messaging 7.1.0: 7.1.0.1-TIV-XEforMsg-IF0002
OMEGAMON XE for Messaging on z/OS 7.1.0: OA43713/ UA71501, OA44035/ UA72813

Channel and Queue Health Thresholds

Channel Health Thresholds (CHLTHRESH) and Queue Health Thresholds (QTHRESH) attributes are used in query filters for Current Queue Manager Status to set threshold values to control the evaluation of overall queue, channel, and queue manager health indicators, or they can be used to turn off the related evaluation.

The syntax of CHLTHRESH :

CHLTHRESH = ‘NONE’
or
CHLTHRESH = ‘CCNRC=integer,CIDBW=integer,CMAPC=integer,CMAPW=integer,CMCPC=integer,CMCPW=integer,CSERW=integer’

Parameters:

NONE

    Tells the agent not to collect the real-time queue metrics and the queue health status and the queue manager health status are not calculated.

CCNRC
    Specifies an integer as the critical threshold for the number of current channel connections that are not running. If the number of current channel connections that are not running (Current Channel Connections Not Running) is greater than the CCNRC value, the Channel Health value in the Queue Manager Status workspace is Critical. The default value is 0.

CIDBW
    Specifies an integer as the warning threshold for the number of the in-doubt channel connections. If the number of the indoubt channel connections (Indoubt Channels) is greater than the CIDBW value, the Channel Health value in the Queue Manager Status workspace is Warning. The default value is 0.

CMAPC
    Specifies the critical threshold for the number of active channel connections as a percentage of the maximum number of active channels. If the percentage (% Max Active Channels) is higher than the CMAPC value, the Channel Health value in the Queue Manager Status workspace is Critical. The default value is 90.

CMAPW
    Specifies the warning threshold for the number of active channel connections as a percentage of the maximum number of active channels. If the percentage (% Max Active Channels) is higher than the CMAPW value, the Channel Health value in the Queue Manager Status workspace is Warning. The default value is 80.

CMCPC
    Specifies the critical threshold for the number of current channel connections as a percentage of the maximum number of current channels. If the percentage (% Max Channels) is higher than the CMCPC value, the Channel Health value in the Queue Manager Status workspace is Critical. The default value is 90.

CMCPW
    Specifies the warning threshold for the number of current channel connections as a percentage of the maximum number of current channels. If the percentage (% Max Channels) is higher than the CMCPW value, the Channel Health value in the Queue Manager Status workspace is Warning. The default value is 80.

CSERW
    Specifies an integer as the warning threshold for the number of the server channel connections. If the number of server channel connections (Server Connections) is greater than the CSERW value, the Channel Health value in the Queue Manager Status workspace is Warning. The default value is 100.

The syntax of QTHRESH:

QTHRESH = ‘NONE’
or
QTHRESH = ‘QDLQW=integer,QHDPC=integer,QGIHW=integer,QPIHW=integer,QXQMC=integer,QXQMW=integer’

Parameters:

NONE
    Tells the agent not to collect the real-time channel metrics and the channel health status and the queue manager health status are not calculated.

QDLQW
    Specifies an integer as the warning threshold for the number of total messages on dead letter queues. If the number of total messages on dead letter queues (DLQ Depth) is greater than the QDLQW value, the Queue Health value in the Queue Manager Status workspace is Warning. The default value is 1.

QHDPC
    Specifies the threshold against which the number of messages on a queue is compared to determine whether the queue depth has become greater than or equal to the queue depth high limit. The value is expressed as percentage of the maximum queue depth. Valid value is 0 - 100.
    If the value is 0, the QDepthHighLimit attribute value is used as the high depth threshold. The queue that exceeds a queue depth of the QDepthHighLimit value is identified as a queue that reaches its queue depth high limit.

    If the value is greater than 0, the queue that exceeds a queue depth of the QHDPC value is identified as a queue that reaches the queue depth high limit.

    If there is one or more queues that reach the queue depth high limit (High Depth Queue Count > 0), the Queue Health value in the Queue Manager Status workspace is Critical.

    The default value is 0.

QGIHW
    Specifies an integer as the warning threshold for the number of get inhibited queues. If the number of get inhibited queues (Get Inhibited Queue Count) is greater than the QGIHW value, the Queue Health value in the Queue Manager Status workspace is Warning. The default value is 0.

QPIHW
    Specifies the warning threshold for the number of put inhibited queues. If the number of put inhibited queues (Put Inhibited Queue Count) is greater than the QPIHW value, the Queue Health value in the Queue Manager Status workspace is Warning. The default value is 0.

QXQMC
    Specifies an integer as the critical threshold for the number of total messages on transmission queues. If the number of total messages on transmission queues (Total Messages on XMIT Queues) is greater than the QXQMC value, the Queue Health value in the Queue Manager Status workspace is Critical. The default value is 15.

QXQMW
    Specifies an integer as the warning threshold for the number of total messages on transmission queues. If the number of total messages on transmission queues (Total Messages on XMIT Queues) is greater than the QXQMW value, the Queue Health value in the Queue Manager Status workspace is Warning. The default value is 1.

Note:
  1. If Channel Health Thresholds and Queue Health Thresholds are not explicitly specified in the SQL query, the default threshold values are assumed.
  2. For situations, whether the real-time queue and channel metrics are collected or not is determined by the attributes in the filters. The only use of Channel Health Thresholds and Queue Health Thresholds is to override the default threshold values. See Situation Considerations section for more details.
  3. CHLTHRESH =’NONE’ or QTHRESH =’NONE’ may conflict with other filters in the SQL query. Below shows an example:

    SELECT QMNAME, INHGQCNT, INHPQCNT
    FROM KMQ.QMCURSTAT
    WHERE QTHRESH=’NONE’ AND (INHGQCNT>0 OR INHPQCNT>0)

    In this example, QTHRESH=’NONE’ conflicts with INHGQCNT and INHPQCNT which require the real-time queue metrics to be collected. When such a conflict situation occurs, QTHRESH='NONE' is ignored just as if QTHRESH is not specified and default threshold values are assumed.

The below tables summarize the behavior of the setting of Queue Health Thresholds and Channel Health Thresholds attributes in queries.

Query for QTHRESH not specifiedQTHRESH='NONE'QTHRESH='QHDPC=...'
TEP workspace
Enhanced 3270ui workspace
History
1. Real-time queue metrics are collected.

2. Default threshold values are used.
1. Real-time queue metrics are NOT collected.

2. Ignored if it conflicts with other filters. The same behavior as QTHRESH not specified.
1. Real-time queue metrics are collected.

2. The threshold values in the filter override the default.
Situation1. The collection of real-time queue metrics is determined by the attributes in the filters.

2. Default threshold values are used.
1. Ignored. The same behavior as QTHRESH not specified.1. The collection of real-time queue metrics is determined by the attributes in the filters.

2. The threshold values in the filter override the default.
Query for CHLTHRESH not specifiedCHLTHRESH='NONE'CHLTHRESH= CCNRC=...'
TEP workspace
Enhanced 3270ui workspace
History
1. Real-time channel metrics are collected.

2. Default threshold values are used.
1. Real-time channel metrics are NOT collected.

2. Ignored if it conflicts with other filters. The same behavior as CHLTHRESH not specified.
1. Real-time channel metrics are collected.

2. The threshold values in the filter override the default.
Situation1. The collection of real-time channel metrics is determined by the attributes in the filters.

2. Default threshold values are used.
1. Ignored. The same behavior as CHLTHRESH not specified.1. The collection of real-time channel metrics is determined by the attributes in the filters.

2. The threshold values in the filter override the default.

Situations Considerations

For situations defined on the Current Queue Manager Status attribute group, the agent will not collect the real-time queue and/or channel metrics if they are not required for the evaluation. For example, the situations shipped in prior releases will not collect the real-time queue and channel metrics.

The below table illustrates how the attributes in the situation filter can impact the collection of real-time queue/channel metrics.

Attributes in Situation FiltersReal-time queue metrics collected? Real-time channel metrics collected?
Health Indicator Attributes:

Channel Health (CHLHEALTH)
Queue Health (QHEALTH)
Queue Manager Health (QMGRHEALTH)
Yes
Yes
Real-time Queue Attributes:

DLQ Depth (DLQDEPTH)
Get Inhibited Queue Count (INHGQCNT)
High Depth Queue Count (HIGHQCNT)
Open Queue Count (OPENQCNT)
Put Inhibited Queue Count (INHPQCNT)
Total Messages (TOTQMSGS)
Total Transmission Queue Messages (TOTXMSGS)
Yes
No
Real-time Channel Attributes:

Active Channel Connections (CHCNACT)1
Current Channel Connections (CHCNCUR)1
Current Channel Connections Not Running (CURCNNR)
In Doubt Channel Connections (CH_TDOUBT)
Maximum Active Channels (MAXACTCHLS)1
Maximum Channels (MAXCHLS)1
Percent Maximum Active Channels (ACTCHLSPCT)1
Percent Maximum Channels (CURCHLSPCT)1
Server Connections (CH_SVRCONN)
No
Yes1

Note:
  1. On z/OS, these attributes are always collected from the Channel Initiator Status without the need of inquiring attributes about every single channel. The agent will collect the real-time channel metrics only on distributed if these attributes appear in the situation filter.

The following table illustrates the implications of the product provided situations.

Product Provided SituationReal-time queue metrics collected? Real-time channel metrics collected?
MQSeries_Channel_Active_High
No
Only on distributed
MQSeries_Channel_Current_High
No
Only on distributed
MQSeries_Channel_Initiator_Prob
No
No
MQSeries_Queue_Manager_Quiesce
No
No

Your site might have customized situations on the Current Queue Manager Status attribute group. Review the situation definitions. Try to minimize the number of the situations that may cause the real-time queue or channel metrics to be collected. Combine such situations if possible.

TEP Workspace Considerations

In TEP, the product provided Current Queue Manager Status workspace was updated to display the new attributes introduced in 710, causing the real-time queue and channel metrics to be collected each time the workspace is displayed or refreshed.

You might have your own customized workspace that issues a query to the Current Queue Manager Status attribute group. If these workspaces are frequently used, update the associated query to use the filter of CHLTHRESH=’NONE’ AND QTHRESH=’NONE’ to turn off the data collection of real-time queue and channel metrics if possible. Without such a change, your customized workspaces in prior releases will cause the real-time queue and channel data to be collected even if they are not useful.

Enhanced 3270ui Workspace Considerations

For Enhanced 3270 user interface, the product provided workspaces collect real-time queue and channel metrics only when required. You might have your own created workspaces that issue a query to the Current Queue Manager Status attribute group. For such workspaces, review the selected attributes in the SQL query, add the filter of CHLTHRESH=’NONE’ and/or QTHRESH=’NONE’ appropriately to improve the performance.

Furthermore, a single set of the threshold values is used throughout all the product provided workspaces which issue query to the Current Queue Manager Status attribute group. You can even set your own threshold values via the interface profile. See the IBM OMEGAMON XE for Messaging on z/OS 7.1.0: Planning and Configuration Guide for more details. If required, you can create your own workspace that takes the same set of threshold values. Refer to TKANWENU(KMQQMSTS) and TKANEXEC(KMQTHRDI) as the example.

History Considerations

History data collection on the Current Queue Manager Status attribute group usually will not cause performance issues because the collection interval is usually much longer in comparison to situations. However, if you are not interested at the new attributes introduced in the 710 release in the history data collection and want to improve the performance, the real-time queue and channel metrics data collection can be turned off through the use of CHLTHRESH=’NONE’ and QTHRESH=’NONE’ filters.

You can add the filters via the Filter tab of the History Collection Configuration dialog. The following figure is an example how you can add both CHLTHRESH=’NONE’ and QTHRESH=’NONE’.



Likewise, you can use the same way to set thresholds for QTHRESH and CHLTHRESH to override the default for the determination of health related metrics according to the site's requirements.

Note:
  1. Don’t use QTHRESH or CHLTHRESH in the filter (where clause) in a query to retrieve historical data either in short term files (PDS on z/OS) or in the warehouse, otherwise, the likelihood of no rows being returned matching the query is very high. If QTHRESH or CHLTHRESH is coded, their values in historical data rows must match whatever is coded in the historical collection query filter so that data can be returned. Therefore, it is better not to code those filters on any query to retrieve the data for viewing.

[{"Product":{"code":"SS3JRN","label":"Tivoli Composite Application Manager for Applications"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Component":"ITCAM agents for Websphere Messaging","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF012","label":"IBM i"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"},{"code":"PF035","label":"z\/OS"}],"Version":"7.1.0","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
17 June 2018

UID

swg21669891