IBM Support

IT15274: JMS client hangs when attempting to receive a message from a queue

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • A thread running in the JBoss environment which is using the
    WebSphere MQ classes for JMS as provided by the WebSphere MQ
    Resource Adapter v7.5, hangs when trying to consume a message
    from a MQ queue.
    
    The stack of the thread when in this hung state is:
    
    "DefaultMessageListenerContainer-5997" prio=10
    tid=0x00007f2ed09c3000nid=0x39bf in Object.wait()
    [0x00007f2e7503d000]
     java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.Object.wait(Object.java:503)
        at
    com.ibm.msg.client.wmq.internal.WMQConsumerShadow.getMsg(WMQCons
    umerShadow.java:1425)
        - locked <0x000000067cca8548> (a java.lang.Object)
        at
    com.ibm.msg.client.wmq.internal.WMQSyncConsumerShadow.receiveInt
    ernal(WMQSyncConsumerShadow.java:239)
        at
    com.ibm.msg.client.wmq.internal.WMQConsumerShadow.receive(WMQCon
    sumerShadow.java:1196)
        at
    com.ibm.msg.client.wmq.internal.WMQMessageConsumer.receive(WMQMe
    ssageConsumer.java:465)
        at
    com.ibm.msg.client.jms.internal.JmsMessageConsumerImpl.receiveIn
    boundMessage(JmsMessageConsumerImpl.java:787)
        at
    com.ibm.msg.client.jms.internal.JmsMessageConsumerImpl.receive(J
    msMessageConsumerImpl.java:487)
        - locked <0x00000006cab49ba0> (a
    com.ibm.msg.client.jms.internal.State)
        at
    com.ibm.mq.jms.MQMessageConsumer.receive(MQMessageConsumer.java:
    217)
        at
    com.ibm.mq.connector.outbound.MessageConsumerWrapper.receive(Mes
    sageConsumerWrapper.java:201)
        at
    org.springframework.jms.listener.AbstractPollingMessageListenerC
    ontainer.receiveMessage(AbstractPollingMessageListenerContainer.
    java:429)
    

Local fix

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    This issue affects users of the:
    
      - WebSphere MQ V7.5 classes for JMS
      - IBM MQ V8 classes for JMS
      - IBM MQ V9 classes for JMS
    
    who have multiple threads consuming messages from an MQ queue
    manager and closing down JMS Connections, Sessions,
    MessageConsumers or MessageProducers in parallel across the
    threads.
    
    
    Platforms affected:
    MultiPlatform
    
    ****************************************************************
    PROBLEM DESCRIPTION:
    The WebSphere MQ classes for JMS contain a counter which is used
    to indicate the number of threads which are attempting to close
    down a JMS MessageConsumer or MessageProducer.  This is used to
    prevent a thread from receiving or sending a message while
    another thread is, in parallel, attempting to close down the JMS
    artifacts associated with sending/receiving that message.
    
    There were two places within the WebSphere MQ classes for JMS
    where this counter was not being accessed from under a suitable
    lock.  As a consequence in a busy JVM, two threads could see
    different values for the same variable, which could lead to a
    thread which was attempting to consume a message go into an
    indefinite wait, resulting in a hung thread.
    

Problem conclusion

  • The WebSphere MQ classes for JMS have been updated so that the
    close counter is only accessed while under a suitable lock.
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
    Version    Maintenance Level
    v7.5       7.5.0.8
    v8.0       8.0.0.6
    v9.0 CD    9.0.1
    v9.0 LTS   9.0.0.1
    
    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

    IT15274

  • Reported component name

    WMQ BASE MULTIP

  • Reported component ID

    5724H7241

  • Reported release

    750

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2016-05-13

  • Closed date

    2016-06-27

  • Last modified date

    2017-06-01

  • 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

    5724H7241

Applicable component levels

[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSDEZSF","label":"IBM WebSphere MQ Managed File Transfer for z\/OS"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7.5","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
31 March 2023