IBM Support

IT20409: An attempt to set a correlID fails with 'Received message could not be correctly parsed' or JMSCMQ1044 errors

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 JMS publishing applications using WebSphere MQ classes for
    JMS version 8.0.0.5 or higher publish a message with a
    JMSCorrelationID property set using the following method call:
    
    
    JMSMessage.setJMSCorrelationIDAsBytes(?someStringValue?.getBytes
    ());
    
    Then JMS consumer applications using WebSphere MQ classes for
    JMS version 8.0.0.5 or higher are unable to parse
    JMSCorrelationID property value of the consumed message, thus
    the following error message is displayed:
    
        com.ibm.msg.client.jms.DetailedJMSException: JMSCMQ1044:
    String is not a valid hexadecimal number - 'ID:12345678'.
        Either an attempt was made to specify a group ID or
    correlationID which starts with the prefix ID but is not
        followed by a well-formed hexadecimal value, or an attempt
    was made to receive a message which contains an MQRFH2
        property of type bin.hex that does not have a well-formed
    hexadecimal value.
        Ensure that a valid hexadecimal value always follows the ID
    prefix when setting group ID or correlation ID values. Ensure
        that any MQRFH2 headers generated by non-JMS applications
    are well-formed.
    
    
    A JMS consumer can successfully consume a message when the
    JMSCorrelationID was set using the following method call:
    
       JMSMessage.setJMSCorrelationID(someStringValue);
    

Local fix

  • Set the JMSCorrelationID to exactly 24 bytes in length.
    

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    Users of the following versions of IBM MQ Classes for JMS:
       - IBM MQ v8.0.0.5
       - IBM MQ v9.0
    
    which are using:
    
      javax.jms.MessageConsumer
    
    that consumes a message with a JMSCorrelationID set using the
    javax.jmsJMSProducer.setJMSCorrelationIDAsBytes(byte[]
    correlationID) method call.
    
    
    Platforms affected:
    MultiPlatform
    
    ****************************************************************
    PROBLEM DESCRIPTION:
    When a IBM MQ Classes for JMS v8.0.0.5 application published a
    message with a JMSCorrelationID property set using the method
    call:
    
    
    JMSMessage.setJMSCorrelationIDAsBytes(?someStringValue?.getBytes
    ());
    
    Then a IBM MQ Classes for JMS v8.0.0.5 consumer application was
    not able to consume the message. This happened because it could
    not parse the JMSCorrelationID property value stored in the RFH2
    message header and resulted in the following error:
    
    com.ibm.msg.client.jms.DetailedJMSException: JMSCMQ1044: String
    is not a valid hexadecimal number - 'ID:12345678'.
    Either an attempt was made to specify a group ID or
    correlationID which starts with the prefix ID but is not
    followed by a well-formed hexadecimal value, or an attempt was
    made to receive a message which contains an MQRFH2 property of
    type bin.hex that does not have a well-formed hexadecimal value.
     Ensure that a valid hexadecimal value always follows the ID
    prefix when setting group ID or correlation ID values. Ensure
    that any MQRFH2 headers generated by non-JMS applications are
    well-formed.
    
    The MQ Classes for JMS threw this exception because it did not
    permit a JMSCorrelationID that was more or less than 24 bytes in
    length.
    

Problem conclusion

  • WebSphere MQ Classes for JMS have been updated to not restrict
    the JMSCorrelationID property length to be exactly 24 bytes in
    length when consuming a message.
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
    Version    Maintenance Level
    v8.0       8.0.0.8
    v9.0 CD    9.0.4
    v9.0 LTS   9.0.0.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

    IT20409

  • 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-04-28

  • Closed date

    2017-06-24

  • Last modified date

    2017-06-24

  • 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":"LOB36","label":"IBM Automation"}}]

Document Information

Modified date:
24 June 2017