IBM Support

IT19966: AMQP property AMQPCorrelationId is not handled correctly when message is passed to the AMQP channel

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

  • The MQ AMQP channel assumes that the AMQPCorrelationID property
    on an AMQP message passed to it is of type String and so
    converts the binary object representing the AMQPCorrelationID to
    a String value. This causes the property to be stored
    incorrectly.
    

Local fix

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    This issue affects users of:
    
    - The MQ V8 AMQP channel.
    
    who have AMQP client applications that:
    
    - Connect to a queue manager using an instance of the AMQP
    channel.
    - Send AMQP messages to MQ that have either the AMQP
    "message-id" or "correlation-id" property set.
    
    
    Platforms affected:
    MultiPlatform
    
    ****************************************************************
    PROBLEM DESCRIPTION:
    When the AMQP channel receives an AMQP message, it will
    construct a corresponding MQ message and copy data from the AMQP
    message into the MQ message. Any AMQP properties on the message
    are also copied across to the MQ message - some of the AMQP
    properties map to fields within the MQMD, and others are stored
    as fields within an <mq_amqp> folder inside the MQRFH2 header.
    Detailed information about this mapping can be found in the
    "Mapping AMQP fields onto IBM MQ fields (incoming messages)"
    topic within the MQ V8 section of IBM Knowledge Center. The URI
    for this topic is shown below:
    
    https://www.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm
    .mq.dev.doc/q125070_.htm
    
    When the AMQP channel received an AMQP message that contained
    the "message-id" property, set as a Byte String, it incorrectly
    converted the value of the "message-id" property into a String
    before storing it in the "mq_amqp.Prp.Mid" field within the
    MQRFH2 header for the corresponding MQ message.
    
    Similarly, if the AMQP channel received an AMQP message that
    contained the "correlation-id" property, set as a Byte String,
    then the value of this property was incorrectly converted into a
    String before being stored  in the "mq_amqp.Prp.Cid" field
    within the MQRFH2 header for the corresponding MQ message.
    
    For example, if an AMQP message had the "message-id" property
    set to the Byte String:
    
    414D5143514D312020202020202020200668D958213F9A0
    
    then the MQ message that was created from the AMQP message would
    have the "mq_amqp.Prp.Mid" field within the MQRFH2 header set
    to:
    
    "AMQ QM1         \x99\x0e\xd0X$X\x0ch"
    

Problem conclusion

  • The AMQP channel has been updated so that:
    
    - If it receives an AMQP message that has the "message-id"
    property set as a Byte String, then the value of the property
    will be stored in "mq_amqp.Prp.Mid" field within the MQRFH2
    header for the corresponding MQ message as a MQTYPE_BYTE_STRING.
    
    - If it receives an AMQP message that has the "correlation-id"
    property set as a Byte String, then the value of this property
    will be stored in "mq_amqp.Prp.Cid" field within the MQRFH2
    header for the corresponding MQ message as a MQTYPE_BYTE_STRING.
    
    For example, if an AMQP client sends a AMQP message that has the
    "message-id" property set to the Byte String:
    
    414D5143514D312020202020202020200668D958213F9A0
    
    to MQ, then the corresponding MQ message will have the
    "mq_amqp.Prp.Mid" field within the MQRFH2 header set to:
    
    414D5143514D312020202020202020200668D958213F9A0
    
    
    In addition to this, the AMQP channel has also been changed so
    that:
    
    - If it receives an AMQP message that has the "message-id"
    property set as something other than a String or a Byte String,
    the message will be rejected and the following error generated:
    
    AMQXR2060E: A message from client ''[client]'' has been rejected
    because the specified AMQP message-id property ''[message-id
    property value]'' has been specified with a data type of
    ''[message-id property type]'', which is not supported.
    
    - If it receives an AMQP message that has the "correlation-id"
    property set as something other than a String or a Byte String,
    the error:
    
    AMQXR2061E: A message from client ''[client]'' has been rejected
    because the specified AMQP correlation-id property
    ''[correlation-id property value]'' has been specified with a
    data type of ''[correlation-id property type]'', which is not
    supported.
    
    will be generated, and the message will be rejected.
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
    Version    Maintenance Level
    v8.0       8.0.0.8
    
    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

    IT19966

  • Reported component name

    WMQ BASE MULTIP

  • Reported component ID

    5724H7251

  • Reported release

    800

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2017-03-30

  • Closed date

    2017-06-23

  • Last modified date

    2017-06-23

  • 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

    WMQ BASE MULTIP

  • Fixed component ID

    5724H7251

Applicable component levels

  • R800 PSY

       UP

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

Document Information

Modified date:
23 June 2017