IBM Support

IT21714: When using a MessageProducer for an unspecified destination and transacted Session JMSMessageID is null on sent message

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

  • An MQ classes for JMS application creates a MessageProducer for
    an unspecified destination using the method call:
    
      createProducer(null)
    
    on a transacted JMS Session.  When the application sends a
    message using a method call that accepts a JMS Destination
    object as its first argument, and that JMS Destination has been
    configured with the MDMSGCTX property:
    
    https://www.ibm.com/support/knowledgecenter/SSFKSJ_9.0.0/com.ibm
    .mq.ref.dev.doc/q112170_.htm
    
    set to the value:
    
      SET_ALL_CONTEXT
    
    then the JMS Message object returned to the application does not
    have the JMSMessageID property set.  As such, a call to:
    
      getJMSMessageID()
    
    on the Message object returns a null object.
    

Local fix

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    This issue affects MQ classes for JMS applications that connect
    to queue managers using the CLIENT transport mode and create a:
    
      - JMS MessageProducer for an unspecified destination and send
    messages using a transacted JMS Session
      - JMSConsumer and send messages using a transacted JMS Context
    
    where the Destination that is specified on the send API call has
    been configured with the MQ JMS property MDMSGCTX set to the
    value SET_ALL_CONTEXT.
    
    
    This issue also affectsMQ classes for Java applications that
    connect to queue managers using the CLIENT transport mode and
    send messages using the MQ put message options:
    
      - MQPMO_ASYNC_RESPONSE
      - MQPMO_SET_ALL_CONTEXT
    
    
    Platforms affected:
    MultiPlatform
    
    ****************************************************************
    PROBLEM DESCRIPTION:
    When sending a message asynchronously (which occurred in the
    scenarios described in the Users Affected section) with the put
    message option, "MQPMO_SET_ALL_CONTEXT", a message identifier
    was not associated with the message before it was put to the
    queue manager by the MQ classes for JMS or classes for Java
    application.  Because the message was put asynchronously, the MQ
    classes for JMS and classes for Java would not wait for a
    response from the queue manager confirming whether the put was
    successful.  As such the JMSMessageID on a JMS Message object
    would have the value "null", and the messageId field on an
    MQMessage object would have the value MQMI_NONE.
    
    The result is that the application would not be able to query
    the message identifier associated with the message from the JMS
    Message or MQMessage object that it put.
    

Problem conclusion

  • The MQ classes for JMS and classes for Java have been updated
    such that they request:
    
      - a message identifier, if a message is put with the option
    MQPMO_NEW_MSG_ID
    
    and
    
      - a correlation identifier, if a message is put with the
    option MQPMO_NEW_CORREL_ID
    
    from the queue manager before issuing an asynchronous put with
    the put message option, "MQPMO_SET_ALL_CONTEXT", then the
    message identifier and/or correlation identifier provided by the
    queue manager will be set on the JMS Message or MQMessage
    object, and is subsequently accessible to the application when
    its thread returns from the MQ classes for JMS and classes for
    Java API call used to put the message.
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
    Version    Maintenance Level
    v8.0       8.0.0.8
    v9.0 LTS   9.0.0.3
    
    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

    IT21714

  • 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-08-07

  • Closed date

    2017-10-16

  • Last modified date

    2017-10-16

  • 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:
16 October 2017