IBM Support

IT21179: JMS Activation Specification fails to requeue poison message to backout queue with MQRC 2098 ('MQRC_CONTEXT_NOT_AVAILABLE')

Subscribe to this APAR

By subscribing, you receive periodic emails alerting you to the status of the APAR, along with a link to the fix after it becomes available. You can track this item individually or track all items by product.

Notify me when this APAR changes.

Notify me when an APAR for this component changes.

APAR status

  • Closed as program error.

Error description

  • When asynchronously attempting to consume a message using an
    Activation Specification in WebSphere Application Server for
    delivery to a message-driven bean (MDB) application, if the
    message has a large RFH2 header and a backout count value that
    is greater than that backout threshold defined on the input
    queue such that it is deemed to be a poison message, the
    following exception can be thrown if no other poison messages
    have been processed:
    
    CWSJY0003W: JMSWMQ0035: Message
    'ID:414D5120514D76383020202020202020C14E495923F27D02', could not
    be moved to dead letter queue 'DEADQUEUE' because of exception:
     '
    Message : com.ibm.msg.client.jms.DetailedIllegalStateException:
    JMSWMQ0030: 'MQPUT' failed for destination 'DEADQUEUE' when
    handling a poison message.
    
    When requeuing a poison message, 'MQPUT' failed when called for
    the destination 'DEADQUEUE'.
    Please see the linked exception for more information on the
    failures and/or warnings.
    Class : class
    com.ibm.msg.client.jms.DetailedIllegalStateException
    Stack :
    com.ibm.msg.client.wmq.common.internal.Reason.reasonToException(
    Reason.java:474)
    :
    com.ibm.msg.client.wmq.common.internal.Reason.createException(Re
    ason.java:216)
    :
    com.ibm.msg.client.wmq.internal.WMQPoison.checkJmqiCallSuccess(W
    MQPoison.java:1422)
    :
    com.ibm.msg.client.wmq.internal.WMQPoison.put(WMQPoison.java:923
    )
    :
    com.ibm.msg.client.wmq.internal.WMQPoison.deadletter(WMQPoison.j
    ava:832)
    :
    com.ibm.msg.client.wmq.internal.WMQPoison.handlePoisonMessage(WM
    QPoison.java:468)
    :
    com.ibm.msg.client.wmq.internal.WMQPoison.handlePoisonMessage(WM
    QPoison.java:333)
    :
    com.ibm.msg.client.wmq.internal.WMQPoison.handlePoisonMessage(WM
    QPoison.java:302)
    :
    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.local.internal.LocalProxyConsumer.jmqiConsumerMe
    thod(LocalProxyConsumer.java:22
    Caused by [1] --> Message : com.ibm.mq.MQException:
    JMSCMQ0001: WebSphere MQ call failed with compcode '2'
    ('MQCC_FAILED') on '2098' ('MQRC_CONTEXT_NOT_AVAILABLE').
    ', it will be returned to the source queue.
    
    The message is then re-browsed by the Activation Specification
    and the exception above continues to be thrown from the MQ
    classes for JMS.
    

Local fix

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    This issue affects users of:
    
      - WebSphere Application Server for z/OS V8.5
      - WebSphere Application Server for z/OS V9.0
    
    who define Activation Specifications against the MQ JCA Resource
    Adapter to asynchronously deliver messages (with RFH2 headers
    over 5000 bytes in size) to message-driven bean (MDB)
    applications and who use the MQ classes for JMS poison message,
    backout requeue functionality.
    
    
    Platforms affected:
    z/OS
    
    ****************************************************************
    PROBLEM DESCRIPTION:
    Activation Specifications defined against the MQ JCA Resource
    Adapter browse for messages that can be asynchronously delivered
    to message-driven bean (MDB) applications.
    
    Poison message handling function in the MQ classes for JMS and
    Activation Specifications can be used to requeue a message to a
    specific backout requeue queue should that message have a
    backout count greater than a configurable threshold (set on the
    MDB's input queue).
    
    If an Activation Specification that was running in WebSphere
    Application Server for z/OS browsed a poison message with a
    large RFH2 header (over 5000 bytes), and the message was the
    first poison message found, then the Activation Specification
    would fail to move the message to the defined backout requeue
    queue or the queue manager's dead-letter queue.  An exception
    would be thrown with the MQ reason code 2098
    ('MQC_CONTEXT_NOT_AVAILABLE').
    
    This was because the poison message would be destructively
    consumed using a new object handle, but when the Activation
    Specification attempted to put the message to the backout
    requeue or dead-letter queue, it specified the object handle
    used to perform the message browsing in the Context field of the
    PutMsgOpts parameter.  Because there was no context associated
    with the object handle used to perform the message browsing, the
    queue manager correctly failed the put.
    

Problem conclusion

  • The MQ JCA Resource Adapter code for Activation Specifications
    has been updated such that the PutMsgOpts parameter contains the
    correct Context information for the queue handle that consumed
    the poison message before an attempt is made to requeue it to
    either the backout requeue queue or the queue manager's
    dead-letter queue.
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
    Version    Maintenance Level
    v7.1       7.1.0.9
    v7.5       7.5.0.9
    v8.0       8.0.0.8
    v9.0 CD    9.0.5
    v9.0 LTS   9.0.0.3
    
    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

    IT21179

  • Reported component name

    WMQ WINDOWS V7

  • Reported component ID

    5724H7220

  • Reported release

    710

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2017-06-26

  • Closed date

    2017-10-19

  • Last modified date

    2017-10-19

  • APAR is sysrouted FROM one or more of the following:

    IT21173

  • APAR is sysrouted TO one or more of the following:

Fix information

  • Fixed component name

    WMQ WINDOWS V7

  • Fixed component ID

    5724H7220

Applicable component levels

  • R710 PSY

       UP



Document information

More support for: WebSphere MQ
APAR / Maintenance

Software version: 710

Reference #: IT21179

Modified date: 19 October 2017


Translate this page: