APAR status
Closed as program error.
Error description
A message is present on a queue with a backout count which exceeds the queue's backout threshold (BOTHRESH). A message cannot be put to the backout queue (BOQNAME), for example because its capacity has been reached (it is full), or it is queue inhibited. An Activation Specification running within the WebSphere Application Server environment attempts to browse the message on the queue. The backout-count exceeded message is consumed from the queue, and the IBM MQ Resource Adapter generates an FDC containing the following information: Source Class :- com.ibm.msg.client.wmq.common.internal.messages.WMQSendMarshal Source Method :- constructMQMD() ProbeID :- XN007004 Thread :- name=Jmqi AsyncConsume Thread. priority=5 group=main ccl=com.ibm.ws.bootstrap.ExtClassLoader@cc1eb679 . | DeliveryMode :- -1 | message :- Invalid DeliveryMode . | at com.ibm.msg.client.commonservices.trace.Trace.ffst(Trace.java:15 55) | at com.ibm.msg.client.wmq.common.internal.messages.WMQSendMarshal.c onstructMQMD(WMQSendMarshal.java:282) | at com.ibm.msg.client.wmq.common.internal.messages.WMQSendMarshal.e xportMQMDAndMessageBuffers(WMQSendMarshal.java:500) | at com.ibm.msg.client.wmq.common.internal.messages.WMQSendMarshal.e xportMQMD(WMQSendMarshal.java:564) | at com.ibm.msg.client.wmq.internal.WMQPoison$PoisonMessage.calculat eMqmdAndBuffers(WMQPoison.java:1982) | at com.ibm.msg.client.wmq.internal.WMQPoison$PoisonMessage.getRepor t(WMQPoison.java:2084) | at com.ibm.msg.client.wmq.internal.WMQPoison$PoisonMessage.access$6 00(WMQPoison.java:1777) | at com.ibm.msg.client.wmq.internal.WMQPoison.handlePoisonMessage(WM QPoison.java:428) | at com.ibm.msg.client.wmq.internal.WMQPoison.handlePoisonMessage(WM QPoison.java:333) | at com.ibm.msg.client.wmq.internal.WMQPoison.handlePoisonMessage(WM QPoison.java:302) | at com.ibm.msg.client.wmq.internal.WMQConnectionBrowser$WMQConnecti onBrowserShadow.handlePoisonMessage(WMQConnectionBrowser.java:56 1) | at com.ibm.msg.client.wmq.internal.WMQConnectionBrowser$WMQConnecti onBrowserShadow.poisonous(WMQConnectionBrowser.java:459) | at com.ibm.msg.client.wmq.internal.WMQConnectionBrowser$WMQConnecti onBrowserShadow.consumer(WMQConnectionBrowser.java:801) | at com.ibm.mq.jmqi.local.internal.LocalProxyConsumer.jmqiConsumerMe thod(LocalProxyConsumer.java:222) The message is not returned to the application, and it has not been put to either the backout queue, or the dead letter queue, or left on the source queue. It has been discarded.
Local fix
N/A
Problem summary
**************************************************************** USERS AFFECTED: This issue affects users of the IBM MQ classes for JMS at versions: 7.1.0.6 -> 7.1.0.9 7.5.0.5 -> 7.5.0.9 (inclusive) where the application is consuming a message from a queue or topic where the following conditions are met: (a) Message backout count exceeds the Destination backout threshold (b) Unable to requeue the message to the defined backout queue (BOQNAME), for example if the queue is full or put-inhibited (c) The "com.ibm.mq.jms.MQDestination" object which the message was being consumed from has its "PERSISTENCE" property set to the value "QDEF". For example, this would occur if the MQDestination object has been obtained from the WebSphere Application Server JNDI, where the JNDI entry was defined with the "As per queue definition" persistence setting. Platforms affected: MultiPlatform **************************************************************** PROBLEM DESCRIPTION: The specific scenario where this error occurred was when a message was picked up that had reached its backout count, and so there was an attempt to send this message to the specified backout queue - however this could not be done, as the backout queue was either full, or had been configured as put inhibited, so there was then a fall-back attempt to send the message to the dead-letter queue instead. When performing some actions on the message headers in preparation for sending it to the dead-letter queue, an FDC with probe ID XN007004 was thrown, and an error is seen in the WebSphere Application Server "SystemOut.log" file, for the form: CWSJY0003W: JMSWMQ0036: Application Server Facilities caught exception ' Message : javax.jms.JMSException: JMSCS0006: An internal problem occurred. Diagnostic information for service was written to 'null'. Please terminate the application as the product is in an inconsistent internal state. Class : class javax.jms.JMSException Stack : com.ibm.msg.client.commonservices.trace.Trace.ffst(Trace.java:15 55) : com.ibm.msg.client.wmq.common.internal.messages.WMQSendMarshal.c onstructMQMD(WMQSendMarshal.java:282) : com.ibm.msg.client.wmq.common.internal.messages.WMQSendMarshal.e xportMQMDAndMessageBuffers(WMQSendMarshal.java:500) : com.ibm.msg.client.wmq.common.internal.messages.WMQSendMarshal.e xportMQMD(WMQSendMarshal.java:564) : com.ibm.msg.client.wmq.internal.WMQPoison$PoisonMessage.calculat eMqmdAndBuffers(WMQPoison.java:1982) : com.ibm.msg.client.wmq.internal.WMQPoison$PoisonMessage.getRepor t(WMQPoison.java:2084) <<< snip >>> : com.ibm.msg.client.wmq.internal.WMQConnectionBrowser$WMQConnecti onBrowserShadow.handlePoisonMessage(WMQConnectionBrowser.java:56 1) : com.ibm.msg.client.wmq.internal.WMQConnectionBrowser$WMQConnecti onBrowserShadow.poisonous(WMQConnectionBrowser.java:459) : com.ibm.msg.client.wmq.internal.WMQConnectionBrowser$WMQConnecti onBrowserShadow.consumer(WMQConnectionBrowser.java:801) : com.ibm.mq.jmqi.remote.impl.RemoteProxyQueue.driveConsumer(Remot eProxyQueue.java:4257) <<< snip >>> This issue only occurred if the "com.ibm.mq.jms.MQDestination" object's persistence property was set to "QDEF" integer value, such as using the "As per WebSphere MQ queue definition" value in the WebSphere Application Server JNDI definition for the Destination.
Problem conclusion
The IBM MQ classes for JMS has been updated such that when a message is being consumed which has: (a) A backout count which exceeds the specified queue backout threshold (b) Cannot be delivered to the specified backout queue for some reason, such as that queue being full or put inhibited it is successfully sent to the dead letter queue instead of being discarded. This APAR will not be shipped in a WebSphere MQ V7.1 or V7.5 Fix Pack as this APAR was closed after these product versions went out of support. An interim fix can be provided upon request to eligible customers with extended support. --------------------------------------------------------------- The fix is targeted for delivery in the following PTFs: Version Maintenance Level 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
IJ02960
Reported component name
WMQ LIN X86 V7
Reported component ID
5724H7224
Reported release
710
Status
CLOSED PER
PE
NoPE
HIPER
YesHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2018-01-05
Closed date
2018-10-17
Last modified date
2018-12-20
APAR is sysrouted FROM one or more of the following:
PI91841
APAR is sysrouted TO one or more of the following:
Fix information
Fixed component name
WMQ LIN X86 V7
Fixed component ID
5724H7224
Applicable component levels
R710 PSY
UP
[{"Line of Business":{"code":"LOB45","label":"Automation"},"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSFKSJ","label":"WebSphere MQ"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7.1"}]
Document Information
Modified date:
09 March 2021