IBM Support

IT29451: MQPUT fails with MQRC_CLUSTER_RESOLUTION_ERROR (2189) but the rcshould be MQRC_OBJECT_CHANGED (2041)

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

  • A CLUSRCVR channel has opened a clustered queue in
    bind-not-fixed mode, is receiving messages from a remote queue
    manager, and is putting messages to that queue without error.
    
    This queue is the only known instance of the queue name within
    the clusters known to the queue manager hosting the CLUSRCVR
    channel.
    
    The administrator changes the queue to remove it from the
    cluster.  They do this by altering the queue's CLUSTER attribute
    to blank.
    
    At that point the queue manager fails the CLUSRCVR channel's
    MQPUT call with reason code MQRC_CLUSTER_RESOLUTION_ERROR 2189.
     Any further messages intended for that queue are sent to the
    Dead Letter Queue, if defined.  The dead letter header contains
    the reason code 2189.
    
    In fact, the MQPUT should fail it with MQRC_OBJECT_CHANGED 2041,
    and the channel should have continued to re-attempt the put to
    the same queue in its new state.
    

Local fix

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    For this situation to exist, the queue must have been in a
    cluster when it was first opened, must be removed from the
    cluster, must be the only queue of that name in any of the
    clusters known to the queue manager where the CLUSRCVR is
    running, and the message must have been put using a
    bind-not-fixed object handle within the originating user
    application.
    
    
    Platforms affected:
    MultiPlatform
    
    ****************************************************************
    PROBLEM DESCRIPTION:
    In the case described, MQ was attempting to find a cluster queue
    of the right name, but none existed, because the administrator
    had effectively removed the only instance of the queue of that
    name, as far as clustering name lookup mechanisms are concerned.
    
    Internally the name lookup error was unknown-object-name but
    this was converted to a reason code of
    MQRC_CLUSTER_RESOLUTION_ERROR 2189.
    
    In fact, it should have been converted to MQRC_OBJECT_CHANGED
    2041.
    

Problem conclusion

  • The MQ product code has been corrected so that, in this
    scenario, the reason code returned through the MQPUT is
    MQRC_OBJECT_CHANGED 2041.
    
    When the correct reason code is returned through the MQPUT that
    the CLUSRCVR channel program has performed, the channel code is
    already coded correctly to recognise this condition, and it
    closes that queue object handle and opens a new one.
    
    The original putter application soon sees failures in its own
    MQPUT calls, so does not continue to put messages forever.  But
    for those that are inflight while the change to the queue is
    being transmitted throughout the cluster, these now make it
    safely to their intended queue, as long as the fix is applied to
    the queue manager hosting the queue (that is, the queue manager
    where the CLUSRCVR channel is running).
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
    Version    Maintenance Level
    v9.1 CD    9.1.3
    v9.1 LTS   9.1.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

    IT29451

  • 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

    2019-06-14

  • Closed date

    2019-07-12

  • Last modified date

    2019-07-12

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

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

    PH14429

Fix information

  • Fixed component name

    IBM MQ BASE MP

  • Fixed component ID

    5724H7271

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":"910","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
12 July 2019