IBM Support

IT26379: JMS subscribers using IBM MQ messaging provider migration mode and MSGSELECTION=BROKER do not receive any messages

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 JMS application connects to a queue manager using IBM MQ
    messaging provider migration mode and a TopicConnectionFactory
    that has the following properties set:
    
    - BROKERVER: 2
    - MSGSELECTION: BROKER
    
    After the application has connected to the queue manager, it
    calls the method:
    
      Session.createDurableSubscriber(Topic, <a
    href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.
    html?is-external=true">String</a>, <a
    href="http://docs.oracle.com/javase/7/docs/api/java/lang/String.
    html?is-external=true">String</a>, boolean)
    
    to create a durable subscription for a topic, specifying a
    message selector, for example:
    
      Property1=Value1 and Property2=Value2
    
    
    When using the WebSphere MQ V7.0.1 classes for JMS, the
    application receives copies of the messages that are published
    on the topic and match the selector.
    
    However, when the application is using the IBM MQ V8.0 classes
    for JMS, the application no longer receives copies of any
    messages that are published on the topic and match the message
    selector.
    

Local fix

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    This issue affects users of the IBM MQ classes for JMS who have
    applications that:
    
    - Connect to a queue manager using IBM MQ messaging provider
    migration mode.
    - And use either a ConnectionFactory or TopicConnectionFactory
    that has the following properties set:
    
        BROKERVER: 2
        MSGSELECTION: BROKER
    
    - And create either a durable or non-durable subscription on a
    topic specifying a message selector.
    
    
    Platforms affected:
    MultiPlatform
    
    ****************************************************************
    PROBLEM DESCRIPTION:
    If an application connects to a queue manager using IBM MQ
    messaging provider migration mode and creates a subscription on
    a topic specifying a message selector, then by default the
    message selection functionality is provided by the IBM MQ
    classes for JMS. In order to have the queue manager perform the
    message selection, the properties:
    
    - BROKERVER: 2
    - MSGSELECTION: BROKER
    
    need to be set on the ConnectionFactory or
    TopicConnectionFactory used by the application to create a
    connection to the queue manager.
    
    If an application using the WebSphere MQ V7.0.1 classes for JMS
    did this, then the WebSphere MQ V7.0.1 classes for JMS would
    convert the message selector into an "MQSI" format before
    passing it to the queued publish/subscribe interface on the
    queue manager. For example, the selector:
    
      Property1=Value1 and Property2=Value2
    
    would become
    
      Root.MQRFH2.usr.Property1=Value1 and
    Root.MQRFH2.usr.Property2=Value2
    
    In IBM MQ V8, this behaviour was changed so that:
    
    - If the IBM classes for JMS were connecting to a queue manager
    using IBM MQ messaging provider migration mode.
    - And the queue manager had the PSMODE attribute set to ENABLED.
    
    then the selector would be passed to the queued
    publish/subscribe interface "as-is" and not converted. This
    behavioural change caused issues if the publish/subscribe broker
    which was using the queued publish/subscribe interface was
    expecting the message selector to be in the "MQSI" format.
    Because the message selector was in a different format to the
    one expected by the publish/subscribe broker, the broker would
    never find any messages which matched the selector. As a result,
    whenever a message that matched the selector was published on
    the topic, the broker failed to make a copy of that message for
    the application to process.
    

Problem conclusion

  • The IBM MQ classes for JMS have been updated so that if an
    application is:
    
    - Connecting to a queue manager using IBM MQ messaging provider
    migration mode.
    - And using either a ConnectionFactory or TopicConnectionFactory
    that has the following properties set:
    
        BROKERVER: 2
        MSGSELECTION: BROKER
    
    - And is creating either a durable or non-durable subscription
    on a topic specifying a message selector.
    
    then the IBM MQ classes for JMS will use the value of the Java
    system property:
    
      com.ibm.mq.jms.pubsub.rawBrokerSelectors
    
    to determine how to handle the message selector before passing
    it to the queued publish/subscribe interface:
    
    - If the property is set to the value "false", then the message
    selector will be converted into an "MQSI" format before being
    passed to the queued publish/subscribe interface.
    
    - If the property is set to any other value, then the message
    selector will be passed to the publish/subscribe interface
    "as-is".
    
    - If the property is not set, then the IBM MQ classes for JMS
    will look at the PSMODE attribute of the queue manager that it
    is connecting to:
        - If the PSMODE attribute is set to "ENABLED", then the
    message selector will be passed to the publish/subscribe
    interface "as-is".
        - If the PSMODE attribute is set either "DISABLED" or
    "COMPAT", then the message selector will be converted into an
    "MQSI" format before being passed to the publish/subscribe
    interface.
    
    By default, the property is not set, which means that existing
    applications should continue to work as they do today after the
    fix for this APAR has been applied.
    
    
    For example, to start a Java application called myJavaApp with
    the property set to the value "false", to ensure that the IBM MQ
    classes for JMS convert the message selector into an "MQSI"
    format, run the following command:
    
      java -Dcom.ibm.mq.jms.pubsub.rawBrokerSelectors=false
    myJavaApp
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
    Version    Maintenance Level
    v8.0       8.0.0.11
    v9.0 LTS   9.0.0.6
    v9.1 CD    9.1.2
    v9.1 LTS   9.1.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

    IT26379

  • Reported component name

    IBM MQ BASE MP

  • Reported component ID

    5724H7251

  • Reported release

    800

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2018-09-21

  • Closed date

    2018-10-26

  • Last modified date

    2018-10-26

  • 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 MP

  • Fixed component ID

    5724H7251

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

Document Information

Modified date:
26 October 2018