IBM Support

IT24453: FFDCs generated intermittently when IBM MQ classes for JMS applications get messages from an alias queue

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

  • An IBM MQ classes for JMS application that gets messages from an
    alias queue intermittently generates a pair of FFDCs. The two
    FFDCs contain the following information:
    
    ****************************************************************
    FFDC 1:
    --------------
    
    Source Class     :-
    com.ibm.msg.client.commonservices.j2se.NLSServices
    Source Method    :- insertMapToArray(String,HashMap)
    ProbeID          :- XS001006
    
                                          Data
                                          ----
    
    |   XMSC_INSERT_COMP_CODE  :-  JMSCMQ0001
    |   XMSC_INSERT_EXCEPTION  :-
    |                          Message : com.ibm.mq.MQException:
    JMSCMQ0001: WebSphere MQ call failed with compcode '2'
    ('MQCC_FAILED') reason '2035' ('MQRC_NOT_AUTHORIZED').
    |                            Class : class
    com.ibm.mq.MQException
    |                            Stack :
    com.ibm.msg.client.wmq.common.internal.Reason.createException(Re
    ason.java:203)
    |                                  :
    com.ibm.msg.client.wmq.internal.WMQPoison.checkJmqiCallSuccess(W
    MQPoison.java:1423)
    |                                  :
    com.ibm.msg.client.wmq.internal.WMQPoison.access$2400(WMQPoison.
    java:88)
                                         :    :    :    :    :    :
    |   XMSC_INSERT_REASON     :-  2035
    |   message id             :-  MQRC_NOT_AUTHORIZED error
    returned when inquiring backout details from queue referenced by
    alias queue
    
    ****************************************************************
    FFDC 2:
    ---------
    Source Class     :-
    com.ibm.msg.client.commonservices.j2se.NLSServices
    Source Method    :- getMessage(String,Object[])
    ProbeID          :- XS001002
    
                                          Data
                                          ----
    
    |   key  :-  MQRC_NOT_AUTHORIZED error returned when inquiring
    backout details from queue referenced by alias queue
    
    ****************************************************************
    

Local fix

  • Ensure that the user has inquire authority (+inq when using
    setmqaut) to the underlying base queue.
    This will prevent the reason code 2035 from being generated and
    avoiding the generation of the FFDC.
    

Problem summary

  • ****************************************************************
    USERS AFFECTED:
    This issue affects two categories of user:
    
    Category 1:
    --------------
    Users of the IBM MQ classes for JMS who have applications that
    get messages from a JMS destination that represents an alias
    queue on a queue manager.
    
    Category 2:
    --------------
    Users of the IBM MQ resource adapter who have activation
    specifications that monitor a JMS destination that represents an
    alias queue on a queue manager.
    
    
    Platforms affected:
    MultiPlatform
    
    ****************************************************************
    PROBLEM DESCRIPTION:
    When the IBM MQ classes for JMS and IBM MQ resource adapter
    detect a message on a JMS destination, the first thing they will
    do is look at the backout count of the message. If the backout
    count is greater than zero, then the IBM MQ classes for JMS and
    IBM MQ resource adapter check if the message needs to be moved
    to a backout requeue queue, or should be delivered to an
    application for processing.
    
    If the JMS destination represents an alias queue on a queue
    manager, then the IBM MQ classes for JMS and IBM MQ resource
    adapter will:
    
    - Identify the base queue for the alias queue.
    - Open the base queue.
    - Inquire the backout threshold (BOTHRESH) and backout requeue
    queue (BOQNAME) attributes for the base queue.
    - Close the base queue.
    
    If the backout count is greater than or equal to the backout
    threshold, then the IBM MQ classes for JMS and IBM MQ resource
    adapter will move the message to the specified backout requeue
    queue. If the backout count is less than the backout threshold,
    then the message is delivered to an application for processing.
    
    
    Now, if the user running the application did not have inquire
    authority on the base queue, then the attempt to inquire the
    backout threshold and backout requeue queue attributes would
    fail. In this situation, the queue manager returned IBM MQ
    reason code 2035:
    
      MQRC_NOT_AUTHORIZED	
    
    back to the IBM MQ classes for JMS and IBM MQ resource adapter.
    
    When the IBM MQ classes for JMS and IBM MQ resource adapter
    received this reason code from the queue manager, they attempted
    to write a message to the IBM MQ classes for JMS log file
    (mqjms.log), to inform the user that it was not possible to
    obtain the values of the backout threshold and backout requeue
    queue attributes for the base queue. However, due to some
    incorrect parameters passed into the IBM MQ classes for JMS
    logging mechanism, the message was not written to the log file,
    and two FFDCs were generated which contained the following
    information:
    
    ****************************************************************
    FFDC 1:
    --------------
    
    Source Class     :-
    com.ibm.msg.client.commonservices.j2se.NLSServices
    Source Method    :- insertMapToArray(String,HashMap)
    ProbeID          :- XS001006
    
                                          Data
                                          ----
    
    |   XMSC_INSERT_COMP_CODE  :-  JMSCMQ0001
    |   XMSC_INSERT_EXCEPTION  :-
    |                          Message : com.ibm.mq.MQException:
    JMSCMQ0001: WebSphere MQ call failed with compcode '2'
    ('MQCC_FAILED') reason '2035' ('MQRC_NOT_AUTHORIZED').
    |                            Class : class
    com.ibm.mq.MQException
    |                            Stack :
    com.ibm.msg.client.wmq.common.internal.Reason.createException(Re
    ason.java:203)
    |                                  :
    com.ibm.msg.client.wmq.internal.WMQPoison.checkJmqiCallSuccess(W
    MQPoison.java:1423)
    |                                  :
    com.ibm.msg.client.wmq.internal.WMQPoison.access$2400(WMQPoison.
    java:88)
                                         :    :    :    :    :    :
    |   XMSC_INSERT_REASON     :-  2035
    |   message id             :-  MQRC_NOT_AUTHORIZED error
    returned when inquiring backout details from queue referenced by
    alias queue
    
    ****************************************************************
    FFDC 2:
    ---------
    Source Class     :-
    com.ibm.msg.client.commonservices.j2se.NLSServices
    Source Method    :- getMessage(String,Object[])
    ProbeID          :- XS001002
    
                                          Data
                                          ----
    
    |   key  :-  MQRC_NOT_AUTHORIZED error returned when inquiring
    backout details from queue referenced by alias queue
    
    ****************************************************************
    

Problem conclusion

  • The IBM MQ classes for JMS and IBM MQ resource adapter have been
    updated so that:
    
    - If they detect a message on a JMS destination that represents
    an alias queue on a queue manager.
    - And the message has a backout count greater than zero.
    - And the user running the application does not have inquire
    authority on the base queue for the alias queue.
    
    then the following message will be written to the IBM MQ classes
    for JMS log file (mqjms.log):
    
    ----------------------------------------------------------------
    ----
    MQRC_NOT_AUTHORIZED returned when inquiring backout threshold
    and backout requeue queue from base queue '' for
    alias queue ''
    
    EXPLANATION:
    IBM classes for JMS issued an MQINQ API call to inquire the
    backout threshold and backout requeue queue attributes from the
    base queue. However, the user running the application did not
    have inquire authority on this queue. As a result, no backout
    processing will be performed for messages on the queue.
    
    ACTION:
    Ensure that the user running the application has inquire
    authority on the base queue for the alias queue.
    ----------------------------------------------------------------
    ----
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
    Version    Maintenance Level
    v8.0       8.0.0.11
    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
    ---------------------------------------------------------------
    
    ---------------------------------------------------------------
    The fix is targeted for delivery in the following PTFs:
    
    Version    Maintenance Level
    v8.0       8.0.0.11
    v9.0 LTS   9.0.0.5
    v9.1 CD    9.1.1
    v9.1 LTS   9.1.0.1
    
    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

    IT24453

  • Reported component name

    IBM MQ BASE MP

  • Reported component ID

    5724H7251

  • Reported release

    800

  • Status

    CLOSED PER

  • PE

    NoPE

  • HIPER

    NoHIPER

  • Special Attention

    NoSpecatt / Xsystem

  • Submitted date

    2018-03-21

  • Closed date

    2018-06-15

  • Last modified date

    2018-08-30

  • 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 MP

  • Fixed component ID

    5724H7251

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":"8.0.0.0","Edition":"","Line of Business":{"code":"LOB36","label":"IBM Automation"}}]

Document Information

Modified date:
30 August 2018