IBM Support

IT34358: Displaying channel status for MQ Telemetry channels using filteron CONNAME attribute may fail with NullPointerException

Subscribe to this APAR

By subscribing, you receive periodic emails alerting you to the status of the APAR, along with a link to the fix after it becomes available. You can track this item individually or track all items by product.

Notify me when this APAR changes.

Notify me when an APAR for this component changes.

 

APAR status

  • Closed as program error.

Error description

  • When using IBM MQ Telemetry service, running the command:
    
    DISPLAY CHSTATUS (MQTT)
    
    specifying a filter condition that includes the CONNAME
    attribute, as shown in the example below:
    
    DISPLAY CHSTATUS(*) CHLTYPE(MQTT) CLIENTID(*) ALL WHERE( CONNAME
    EQ '1.2.3.4')
    
    results in a NullPointerException occurring. In addition to
    this, an FDC is generated containing the following information:
    
    Thread       :- name=Jmqi AsyncConsume Thread. tid: 5
                    priority=5 group=main
                    ccl=sun.misc.Launcher$AppClassLoader@3269d6b
    Source Class :- com.ibm.mq.MQXRService.MQTTCommandProcessor
    Source Method:- processEscapePCFCommand
    Probe Id     :- XR052012
    Loaded from  :- jar:file:/opt/mqm910/mqxr/lib/MQXRListener.jar
        !/com/ibm/mq/MQXRService/MQTTCommandProcessor.class
    |------------------------------------------------------------|
    
    java.lang.NullPointerException
     at com.ibm.mq.MQXRService.PCFUtils.matchClientFilter
        (PCFUtils.java:113)
     at com.ibm.mq.MQXRService.MQTTCommandProcessor.
        resolveClientID(MQTTCommandProcessor.java:3292)
     at com.ibm.mq.MQXRService.MQTTCommandProcessor.
         inquireChannelStatusInstance
         (MQTTCommandProcessor.java:2239)
     at com.ibm.mq.MQXRService.MQTTCommandProcessor.
         inquireChannelStatus(MQTTCommandProcessor.java:2053)
     at com.ibm.mq.MQXRService.MQTTCommandProcessor.
         processPCFCommand(MQTTCommandProcessor.java:851)
     at com.ibm.mq.admin.contributions.telemetry.status.
         InquireTelemetryChannelStatusCommandHandler.callSpi
         (InquireTelemetryChannelStatusCommandHandler.java:84)
    

Local fix

  • Run the command without the filter option.
    
    e.g.
    runmqsc <QMgr>
       DISPLAY CHSTATUS(*) CHLTYPE(MQTT) CLIENTID(*) ALL
    

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    This issue affects users of the IBM MQ Telemetry service, who
    use the MQSC command:
    
    DISPLAY CHSTATUS (MQTT)
    
    to display the status of one or more MQ Telemetry channels.
    
    
    Platforms affected:
    Windows, Linux on x86-64, Linux on zSeries, AIX
    
    ****************************************************************
    PROBLEM DESCRIPTION:
    When using the MQSC command:
    
    DISPLAY CHSTATUS (MQTT)
    
    to display the status of MQ Telemetry channels, it is possible
    to specify a filter condition so that the command only displays
    information about those channels that match the condition. More
    information about the:
    
    DISPLAY CHSTATUS(MQTT)
    
    command can be found in the DISPLAY CHSTATUS (MQTT) topic in the
    MQ sections of IBM Knowledge Center. The URI for this topic in
    the MQ 9.1.x section of IBM Knowledge Center is
    https://www.ibm.com/support/knowledgecenter/SSFKSJ_9.1.0/com.ibm
    .mq.ref.adm.doc/q086100_.htm
    
    If the filter condition contains the CONNAME attribute, the MQ
    Telemetry service reads the value of that attribute for each of
    the MQ Telemetry channels and then compare that value to the
    specified condition in order to determine which channels to
    display.
    
    The MQ Telemetry service incorrectly assumed that the CONNAME
    attribute would always have a value. However, it was possible
    for an MQ Telemetry channel to have a null value for that
    attribute. In this situation, the MQ Telemetry service would try
    to access the attribute and generate a NullPointerException. As
    a result, the command would fail and the MQ Telemetry service
    would generate an FDC containing the information shown below:
    
    ...
    Source Class :- com.ibm.mq.MQXRService.MQTTCommandProcessor
    Source Method:- processEscapePCFCommand
    Probe Id     :- XR052012
    ...
    :---------------------------------------------------------------
    -----------------------------------:
    : Exception cause: :
    :---------------------------------------------------------------
    -----------------------------------:
    java.lang.NullPointerException
     at com.ibm.mq.MQXRService.PCFUtils.matchClientFilter
    (PCFUtils.java:113)
     at
    com.ibm.mq.MQXRService.MQTTCommandProcessor.resolveClientID(MQTT
    CommandProcessor.java:3292)
     at
    com.ibm.mq.MQXRService.MQTTCommandProcessor.inquireChannelStatus
    Instance(MQTTCommandProcessor.java:2239)
     at
    com.ibm.mq.MQXRService.MQTTCommandProcessor.inquireChannelStatus
    (MQTTCommandProcessor.java:2053)
     at
    com.ibm.mq.MQXRService.MQTTCommandProcessor.processPCFCommand(MQ
    TTCommandProcessor.java:851)
     at
    com.ibm.mq.admin.contributions.telemetry.status.InquireTelemetry
    ChannelStatusCommandHandler.callSpi(InquireTelemetryChannelStatu
    sCommandHandler.java:84)
    &#09;
    

Problem conclusion

  • The MQ Telemetry service has been updated to correctly handle
    the situation when the MQSC command:
    
    DISPLAY CHSTATUS(MQTT)
    
    is run with a filter condition containing the CONNAME attribute,
    and one or more of the MQ Telemetry channels has a null value
    for that attribute. This prevents the NullPointerException from
    occurring, and allows the command to correctly filter the
    results based on the value of the attribute.
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
    Version    Maintenance Level
    v9.1 LTS   9.1.0.8
    v9.2 LTS   9.2.0.2
    v9.x CD    9.2.2
    
    The latest available maintenance can be obtained from
    'WebSphere MQ Recommended Fixes'
    http://www-1.ibm.com/support/docview.wss?rs=171&uid=swg27006037
    
    If the maintenance level is not yet available information on
    its planned availability can be found in 'WebSphere MQ
    Planned Maintenance Release Dates'
    http://www-1.ibm.com/support/docview.wss?rs=171&uid=swg27006309
    ---------------------------------------------------------------
    

Temporary fix

Comments

APAR Information

  • APAR number

    IT34358

  • Reported component name

    IBM MQ BASE MP

  • Reported component ID

    5724H7271

  • Reported release

    910

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2020-09-25

  • Closed date

    2020-10-28

  • Last modified date

    2020-10-28

  • APAR is sysrouted FROM one or more of the following:

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    IBM MQ BASE MP

  • Fixed component ID

    5724H7271

Applicable component levels

[{"Line of Business":{"code":"LOB36","label":"IBM Automation"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSYHRD","label":"IBM MQ"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"910"}]

Document Information

Modified date:
29 October 2020