APAR status
Closed as program error.
Error description
A IBM MQ classes for JMS application is running, using an asynchronous MessageConsumer, one which was created using the method: javax.jms.MessageConsumer.setMessageListener( javax.jms.MessageListener) The associated MQ classes for JMS Connection object is running in "migration mode". This could, for example, be because either the application: (a) Is connecting to an MQ channel where SHARECNV(0) has been defined. or (b) has configured the associated MQConnectionFactory has been configured with the property: ProviderVersion="6" through the use of the method call: com.ibm.mq.jms.MQConnectionFactory.setProviderVersion("6") Even though there are messages present and available to be consumed on the queue, the asynchronous MessageConsumer is not consuming them and driving the MessageListener. Prior to the problem occurring, the application had been calling: javax.jms.MessageConsumer.close(); on a MessageConsumer which had been created from the same JMS "javax.jms.Session" object instance as the MessageConsumer which subsequently was not returning messages.
Local fix
Either: a) use the MQ classes for JMS in the normal or normal-with-restrictions mode of operation, or b) close and recreate the JMS resources used by the application.
Problem summary
**************************************************************** USERS AFFECTED: This issue affects applications using the MQ classes for JMS that are operating in migration mode and have configured an asynchronous MessageListener on a MessageConsumers created from the same JMS Session as other MessageConsumers. Platforms affected: MultiPlatform **************************************************************** PROBLEM DESCRIPTION: When the MQ classes for JMS are operating in migration mode, and the application has configured message listeners to consume messages asynchronously, an internal client thread called the "SessionAsyncHelper" thread performs polling MQGET calls on MQ destinations to consume messages that can be delivered to the configured message listeners. If the application called the method: javax.jms.MessageConsumer.close() then a timing window existed whereby the SessionAsyncHelper thread would end because the MQ destination it was about to issue an MQGET API call on was closed and dereferenced. After the SessionAsyncHelper thread stopped, no more messages would be delivered to message listeners, even those associated with non-closed message listeners. This problem was introduced by APAR IT24240: http://www.ibm.com/support/docview.wss?uid=swg1IT24240 which was first shipped within: IBM MQ v9.0.0.4 The issue was fixed prior to the shipping of APAR IT24240 in IBM MQ 8.0 - so this APAR does not apply to IBM MQ v8.0.
Problem conclusion
The IBM MQ classes for JMS have been updated to protect against the SessionAsyncHelper thread ending when a MessageConsumer is being closed. If the SessionAsyncHelper thread detects a dereferenced MQ destination and the MessageConsumer has been closed, it removes the destination from its internal list of destinations to poll for messages. --------------------------------------------------------------- The fix is targeted for delivery in the following PTFs: Version Maintenance Level v9.0 LTS 9.0.0.5 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
IT25282
Reported component name
IBM MQ BASE M/P
Reported component ID
5724H7261
Reported release
900
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2018-06-06
Closed date
2018-06-18
Last modified date
2018-06-18
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 M/P
Fixed component ID
5724H7261
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":"9.0","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]
Document Information
Modified date:
18 June 2018