APAR status
Closed as program error.
Error description
When using the automatic client reconnection feature, the MQ classes for JMS will attempt to reinstate any connection and object handles that were closed, for example, due to broken network connections or failover of a multi-instance queue manager. If this reconnection has occurred, followed by a JMS MessageListener attempting to consume a poison message, such that the backout count of the message was greater than the backout threshold defined on the queue from which it was consumed, then the MQ classes for JMS poison message handling logic would be invoked which would be expected to move the poison message to the backout or dead-letter queue. However, the requeue operation would fail, and the following exception would be written to the mqjms.log file: com.ibm.msg.client.wmq.internal.WMQPoison The dead letter queue could not be written to because of exception Message : javax.jms.JMSException: JMSCS0006: An internal problem occurred. Diagnostic information for service was written to '<PATH_TO_FDC>\JMSCC0002.FDC'. Please terminate the application as the product is in an inconsistent internal state. Stack : com.ibm.msg.client.commonservices.trace.Trace.ffst com.ibm.msg.client.wmq.internal.WMQPoison.checkJmqiCallSuccess com.ibm.msg.client.wmq.internal.WMQPoison.put com.ibm.msg.client.wmq.internal.WMQPoison.deadletter com.ibm.msg.client.wmq.internal.WMQPoison.handlePoisonMessage com.ibm.msg.client.wmq.internal.WMQPoison.handlePoisonMessage com.ibm.msg.client.wmq.internal.WMQPoison.handlePoisonMessage com.ibm.msg.client.wmq.internal.WMQAsyncConsumerShadow.poisonous com.ibm.msg.client.wmq.internal.WMQAsyncConsumerShadow.consumer com.ibm.mq.jmqi.remote.impl.RemoteProxyQueue.driveConsumer com.ibm.mq.jmqi.remote.impl.RemoteProxyQueue.deliverMsgs com.ibm.mq.jmqi.remote.impl.RemoteDispatchThread.deliverMsgsReco nnectable com.ibm.mq.jmqi.remote.impl.RemoteDispatchThread.deliverMsgs com.ibm.mq.jmqi.remote.impl.RemoteDispatchThread.run The FFDC file generated will contain content similar to that below: Product :- IBM MQ classes for JMS Source Class :- WMQPoison Source Method :- checkJmqiCallSuccess ProbeID :- XN00S004 Stack trace to show the location of the FFST call FFST Location :- java.lang.Exception at com.ibm.msg.client.commonservices.trace.Trace.getCurrentPosition at com.ibm.msg.client.commonservices.trace.Trace.createFFSTString at com.ibm.msg.client.commonservices.trace.Trace.ffstInternal at com.ibm.msg.client.commonservices.trace.Trace.ffstat at com.ibm.msg.client.wmq.internal.WMQPoison.checkJmqiCallSuccess at com.ibm.msg.client.wmq.internal.WMQPoison.put at com.ibm.msg.client.wmq.internal.WMQPoison.backoutRequeue at com.ibm.msg.client.wmq.internal.WMQPoison.handlePoisonMessage at com.ibm.msg.client.wmq.internal.WMQPoison.handlePoisonMessage at com.ibm.msg.client.wmq.internal.WMQPoison.handlePoisonMessage at com.ibm.msg.client.wmq.internal.WMQAsyncConsumerShadow.poisonous at com.ibm.msg.client.wmq.internal.WMQAsyncConsumerShadow.consumer at com.ibm.mq.jmqi.remote.impl.RemoteProxyQueue.driveConsumer at com.ibm.mq.jmqi.remote.impl.RemoteProxyQueue.deliverMsgs at com.ibm.mq.jmqi.remote.impl.RemoteDispatchThread.deliverMsgsReco nnectable at com.ibm.mq.jmqi.remote.impl.RemoteDispatchThread.deliverMsgs at com.ibm.mq.jmqi.remote.impl.RemoteDispatchThread.run
Local fix
Problem summary
**************************************************************** USERS AFFECTED: This issue affects applications which use the IBM MQ classes for JMS that do the following: (a) Consumes messages from queues. (b) Has configured the application to use the automatic client reconnect function with CLIENT transport mode, and have had a network event such that the IBM MQ classes for JMS have reconnected to the queue manager. (c) Has enabled the poison message handling functionality by setting the backout threshold (BOTHRESH) property on the application's input queue to a value greater than 0. (d) Is attempting to consume a poison message from the queue which requires moving to the backout queue. Platforms affected: MultiPlatform **************************************************************** PROBLEM DESCRIPTION: When using the MQ classes for JMS, queues are opened with an internal option that instructs the queue manager to cache identity and origin context information for messages that are consumed using the object handle created when the queue is opened. In the case where there was a connection failure between the application and the queue manager such that automatic client reconnect function was invoked, then object handles that were reestablished were not reopened with the same internal options to cache identity and origin context information for consumed messages with the recreated object handle. If the MQ classes for JMS application then consumed a poison message, the poison message handling logic would attempt to requeue the message to the backout requeue queue or, failing that, the dead-letter queue. To move the poison message to the backout requeue or dead-letter queue, the MQ classes for JMS would use the put message option: MQPMO_PASS_ALL_CONTEXT However, because the object handle that was recreated by the automatic client reconnect function did not use the option to save context and identity information, the queue manager fails the requeue of the message with the MQ reason code 2097 ('MQRC_CONTEXT_HANDLE_ERROR').
Problem conclusion
The MQ classes for JMS automatic client reconnect function has been updated such that any internal options used initially when a queue was initially opened are also used when the automatic client reconnect function recreates them following a connection failure. --------------------------------------------------------------- The fix is targeted for delivery in the following PTFs: Version Maintenance Level v9.0 CD 9.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
IT22218
Reported component name
IBM MQ BASE M/P
Reported component ID
5724H7261
Reported release
903
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2017-08-30
Closed date
2017-09-29
Last modified date
2017-09-29
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
R903 PSY
UP
[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSYHRD","label":"IBM MQ"},"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"9.0","Line of Business":{"code":"LOB45","label":"Automation"}}]
Document Information
Modified date:
21 November 2021