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