IBM Support

IT23213: An unauthorized MQTT client leaves LWT messages on the SYSTEM.MQTT.PERSISTENT.STATE queue.

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 an unauthorized MQTT client application stops after a
    publish attempt,
    a last will message (LWT) is left on the
    SYSTEM.MQTT.PERSISTENT.STATE queue.
    
    The following error can be seen in the queue manager error logs:
    
    AMQ8009: Entity 'mquser' has insufficient authority to access
    topic string 'topicString'.
    
    EXPLANATION:
    The specified entity is not authorized to access the required
    topic. The following permissions were requested:
    altusr/pub/setid
    
    
    And an FDC would be generated with the following Probe Id:
    XR047001
    
    com.ibm.mq.MQXRService.MQException: AMQXR0004E: MQSeries
    verb=MQOPEN(String) returned cc=2(int) MQCC_FAILED rc=2035(int)
    MQRC_NOT_AUTHORIZED.
    	at
    com.ibm.mq.MQXRService.MQConnection.getMQException(MQConnection.
    java:1251)
    	at
    com.ibm.mq.MQXRService.MQConnection.open(MQConnection.java:241)
    	at
    com.ibm.mq.MQXRService.LifecycleMessage.sendMessage(LifecycleMes
    sage.java:251)
    	at
    com.ibm.mq.MQXRService.MQTTServerSession.sendWillMessages(MQTTSe
    rverSession.java:1127)
    	at
    com.ibm.mq.MQXRService.MQTTServerSessionV311.willClose(MQTTServe
    rSessionV311.java:264)
    	at
    com.ibm.mq.MQXRService.MQTTServerContext.willClose(MQTTServerCon
    text.java:179)
    	at
    com.ibm.mq.communications.NonBlockingConnection.close(NonBlockin
    gConnection.java:608)
    	at
    com.ibm.mq.MQXRService.MQTTServerSessionV311.receivePublish(MQTT
    ServerSessionV311.java:1272)
    	at
    com.ibm.mq.MQXRService.MQTTServerSessionV311.handleReceive(MQTTS
    erverSessionV311.java:150)
    	at
    com.ibm.mq.MQXRService.MQTTServerContext.handleReceive(MQTTServe
    rContext.java:153)
    	at
    com.ibm.mq.MQXRService.MQTTWireContext.receive(MQTTWireContext.j
    ava:375)
    	at
    com.ibm.mq.communications.NonBlockingConnection.receive(NonBlock
    ingConnection.java:378)
    	at
    com.ibm.mq.communications.NonBlockingWorker.run(NonBlockingWorke
    r.java:398)
    	at java.lang.Thread.run(Thread.java:785)
    

Local fix

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    This issue affects users of the:
    
    - IBM MQ V9.0 Telemetry
    
    who have unauthorized MQTT clients connecting with a last will
    and testament (LWT) message specified.
    
    
    Platforms affected:
    MultiPlatform
    
    ****************************************************************
    PROBLEM DESCRIPTION:
    When an MQTT client connects to the telemetry channel it can
    specify a LWT (last will and testament) message which would get
    published to the specified LWT topic if an MQTT client
    connection unexpectedly ends. This LWT message is stored on the
    SYSTEM.MQTT.PERSISTENT.STATE queue while the client is
    connected.
    
    If an MQTT client connected with a user ID that was not
    authorized  to publish to the last will and testament (LWT)
    topic, and so the LWT message could not be published, the
    messages were left on the  SYSTEM.MQTT.PERSISTENT.STATE queue,
    resulting in a buildup of messages on this queue.
    

Problem conclusion

  • The MQXR Service has been updated, so that unauthorized MQTT
    clients do not leave LWT messages on the
    SYSTEM.MQTT.PERSISTENT.STATE queue. If LWT message could not be
    published due to an authorization failure the following message
    will be written to the mqxr log:
    
    AMQXR2067E: An attempt to publish a last will and testament
    message from Client Identifier '<client id>' on channel '<
    channel name>' failed as the user identifier '<user id>'
    performing the operation was not authorized to access the topic
    '<topic name>'.
    
    To clear up any LWT messages that have built up on the
    SYSTEM.MQTT.PERSISTENT.STATE queue, it is suggested to:
    
    &#09;1.  Stop the MQXR service ( stops all the MQXR messaging )
    &#09;2.  Clear the SYSTEM.MQTT.PERSISTENT.STATE queue (using MQ
    Explorer or the MQSC CLEAR QLOCAL command).
    &#09;
    Be aware this might cause inbound and/or outbound messages to be
    lost, because the SYSTEM.MQTT.PERSISTENT.STATE is used to store
    the LWT messages as well as inbound and outbound messages to
    provide the desired QoS.
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
    Version    Maintenance Level
    v9.0 LTS   9.0.0.4
    
    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

    IT23213

  • Reported component name

    IBM MQ BASE M/P

  • Reported component ID

    5724H7261

  • Reported release

    900

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2017-11-17

  • Closed date

    2018-01-29

  • Last modified date

    2018-01-29

  • 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 M/P

  • Fixed component ID

    5724H7261

Applicable component levels

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

Document Information

Modified date:
29 January 2018