IBM Support

IT11879: NON-PERSISTENT, NON TRANSACTED MSGS LOST UNDER NORMAL RUNNING CONDITIONS

Subscribe

You can track all active APARs for this component.

 

APAR status

  • Closed as program error.

Error description

  • When running in the WebSphere Application Server Liberty Profile
    using the IBM MQ messaging provider, messages sent using a
    MessageProducer created from a JMSContext intermittently fail to
    be processed. The message driven bean (MDB) which is expected to
    process these message is never invoked. No error messages are
    seen at either the client or Queue Manager.
    

Local fix

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    This issue affects users of the IBM MQ v8 Resource Adapter who
    have applications which use a MessageProducer created from a
    JMSContext to send messages.
    
    
    Platforms affected:
    MultiPlatform
    
    ****************************************************************
    PROBLEM DESCRIPTION:
    The IBM MQ v8 Resource Adapter provides an implementation of a
    JMSContext that can be used by application servers. This
    implementation utilises a number of internal objects to maintain
    information about the state of a JMSContext.  One of these
    internal objects, known as the internal message producer, tracks
    whether usage of the JMSContext should be transacted or
    non-transacted.
    
    This internal message producer was only created when the very
    first MessageProducer for that JMSContext was created.  If at
    this point, the application server decided to enlist the
    JMSContext in a transaction,  then the internal message producer
    was set to send messages inside a transaction. If there was no
    transaction active, then the internal message producer was set
    up to send messages outside of a transaction.
    
    When this JMSContext was closed and returned to the connection
    pool by the application server, the internal message producer
    was not cleared.  The result of this was that the transacted
    state of the internal message producer was cached for the
    lifetime of the JMSContext. When the JMSContext was removed from
    the connection pool and given to an application for re-use, the
    cached transactional state of the internal message producer
    resulted in the following behaviour:
    
     - If the first time the JMSContext was used to create a
    MessageProducer there was a transaction in progress, then the
    transactional state of the internal message producer was set as
    "transacted".   If subsequent usage of the JMSContext was
    non-transacted, then the MQ resource adapter would incorrectly
    send messages inside a unit of work, resulting in unexpected
    behaviour.
    
     - If the first time the JMSContext was used to create a
    MessageProducer there were no transactions in progress, then the
    transactional state of the internal message producer was set as
    "non-transacted". As this value was cached, all subsequent
    MessageProducers created from the JMSContext would be marked as
    "non-transacted", even if the JMSContext was being used inside
    of a transaction - this could cause the MQ resource adapter to
    incorrectly send messages outside of a transaction, again
    resulting in unexpected behaviour.
    

Problem conclusion

  • The IBM MQ resource adapter has been updated so that the
    internal message producer is cleared when an application has
    finished using a JMSContext and has returned it to the
    application server's connection pool. The next time the
    JMSContext is used, the internal message producer is recreated
    and the transactional state is set correctly.
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
    Version    Maintenance Level
    v8.0       8.0.0.4
    
    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

    IT11879

  • 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

    2015-10-21

  • Closed date

    2016-06-06

  • Last modified date

    2016-06-06

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

Document Information

Modified date:
06 June 2016