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":"LOB45","label":"Automation"}}]
Document Information
Modified date:
30 August 2018