IBM Support

IV15882: WEBSPHERE MQ CLASSES FOR JMS MAY HANG WHEN CREATING A JMS MESSAGE LISTENER ON A STARTED JMS CONNECTION

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • The WebSphere MQ classes for JMS client libraries hang when
    using the the 7.0.1.7 version.  This occurred when a message
    listener was set on a JMS connection which has been started.
    
    Upon examination of a Java thread dump when the hang had
    occurred shows the following stack:
    
    at java/lang/Object.wait(Native Method)
    at java/lang/Object.wait(Bytecode PC:3(Compiled Code))
    at
    com/ibm/msg/client/commonservices/ReentrantMutex.acquire(Byteco
    de PC:175(Compiled Code))
    at
    com/ibm/msg/client/commonservices/ReentrantMutex.acquire(Byteco
    de PC:3(Compiled Code))
    at
    com/ibm/msg/client/jms/internal/JmsMessageProducerImpl.send_(By
    tecode PC:84)
    at
    com/ibm/msg/client/jms/internal/JmsMessageProducerImpl.send(Byt
    ecode PC:56)
    at
    com/ibm/rcp/integrator/queuedispatchersvc/impl/QueueDispatcherI
    nBoundMessageListener.handleFragmentedFileMessages(Bytecode PC:
    1086)
    at
    com/ibm/rcp/integrator/queuedispatchersvc/impl/QueueDispatcherI
    nBoundMessageListener.onMessage(Bytecode PC:619)
    at
    com/ibm/msg/client/jms/internal/JmsMessageConsumerImpl$JmsProvi
    derMessageListener.onMessage(Bytecode PC:246)
    at
    com/ibm/msg/client/mqtt/internal/ProviderMessageConsumerMqttImp
    l$MessageListener.messageArrived(Bytecode PC:18)
    at
    com/ibm/mqttclient/v4/internal/extended/MqttConsumerImpl.messag
    eArrived(Bytecode PC:42)
    at
    com/ibm/mqttclient/v4/internal/extended/MqttSessionImpl.run(Byt
    ecode PC:117)
    at java/lang/Thread.run(Bytecode PC:13)
    

Local fix

  • None; use 7.0.1.6 JMS Client libraries.
    

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    Users of message listeners in standalone applications using
    WebSphere MQ classes for JMS, including versions:
    
    v7.0.1.7
    v7.0.1.8
    
    Platforms affected:
    All Distributed (iSeries, all Unix and Windows) +Java +Java zOS
    ****************************************************************
    PROBLEM SUMMARY:
    This hang state occurred when the following sequence of events
    is used:
    
    1. A JMS Connection is created and started.
    
    2. A JMS Session is created from the Connection, and a
    MessageConsumer is created from this Session.
    
    3. The setMessageListener method is invoked on the
    MessageConsumer to create a message listener.
    
    3. The message listener's onMessage() method is invoked, during
    which the same Session that the MessageConsumer was created
    under is used.  For example, a message is sent to a Destination
    where the MessageProducer created from the Session.
    
    
    A lock on the Session object was acquired while setting the
    message listener which was not released when the Session
    switched from synchronous mode to asynchronous mode while
    setting the message listener.
    
    This subsequently led to a thread hang where a Object.wait()
    method call was called, with no other thread to notify and
    stop the wait() from being indefinite.
    
    This behaviour was introduced by the APAR IV00757, which was
    associated with changing the locking behaviour of
    MessageConsumers and Sessions to avoid a deadlock.  This APAR,
    IV00757, was included in the WebSphere MQ classes for JMS fix
    pack 7.0.1.7.
    

Problem conclusion

  • The code was modified such that the lock is released when the
    method to set the message listener on the message consumer
    completes.  This means that when the Session is used within
    the onMessage() implementation, the lock can be acquired and the
    thread does not hang.
    
    
    
    | MDVREGR 7.0.1-WS-MQ-AixPPC64-FP0006       |
    | MDVREGR 7.0.1-WS-MQ-HpuxIA64-FP0006       |
    | MDVREGR 7.0.1-WS-MQ-HpuxPaRISC64-FP0006   |
    | MDVREGR 7.0.1-WS-MQ-LinuxIA32-FP0006      |
    | MDVREGR 7.0.1-WS-MQ-LinuxPPC64-FP0006     |
    | MDVREGR 7.0.1-WS-MQ-LinuxS390X-FP0006     |
    | MDVREGR 7.0.1-WS-MQ-LinuxX64-FP0006       |
    | MDVREGR 7.0.1-WS-MQ-SolarisSparc64-FP0006 |
    | MDVREGR 7.0.1-WS-MQ-SolarisX64-FP0006     |
    | MDVREGR 7.0.1-WS-MQ-Windows-FP0006        |
    
    | MDVREGR 7.0.1-WS-MQ-AixPPC64-FP0007       |
    | MDVREGR 7.0.1-WS-MQ-HpuxIA64-FP0007       |
    | MDVREGR 7.0.1-WS-MQ-HpuxPaRISC64-FP0007   |
    | MDVREGR 7.0.1-WS-MQ-LinuxIA32-FP0007      |
    | MDVREGR 7.0.1-WS-MQ-LinuxPPC64-FP0007     |
    | MDVREGR 7.0.1-WS-MQ-LinuxS390X-FP0007     |
    | MDVREGR 7.0.1-WS-MQ-LinuxX64-FP0007       |
    | MDVREGR 7.0.1-WS-MQ-SolarisSparc64-FP0007 |
    | MDVREGR 7.0.1-WS-MQ-SolarisX64-FP0007     |
    | MDVREGR 7.0.1-WS-MQ-Windows-FP0007        |
    
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
    Version    Maintenance Level
    v7.0       7.0.1.9
    
    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

    IV15882

  • Reported component name

    WMQ AIX V7

  • Reported component ID

    5724H7221

  • Reported release

    701

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt

  • Submitted date

    2012-02-21

  • Closed date

    2012-05-28

  • Last modified date

    2013-11-28

  • 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 AIX V7

  • Fixed component ID

    5724H7221

Applicable component levels

  • R701 PSY

       UP

[{"Business Unit":{"code":"BU048","label":"IBM Software"},"Product":{"code":"SSCPQ63","label":"APAR \/ Maintenance"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7.0.1","Edition":"","Line of Business":{"code":"","label":""}}]

Document Information

Modified date:
28 November 2013