APAR status
Closed as program error.
Error description
An IBM MQ classes for JMS application creates a JMS destination programmatically, passing in a URI that contains a name/value pair, as shown below: Queue queue = Session.createQueue("queue:///MYQUEUE?targetClient=1"); The application then uses the JMS destination, to send messages to it. When the application is run without IBM MQ classes for JMS trace enabled, the messages that are sent to the destination do not have an MQRFH2 header within them. This is expected, as the JMS destination has the targetClient property set to the value 1 (which maps to the value "MQ"). The application is then run with IBM MQ classes for JMS trace enabled. Now, when messages are sent to the destination, the value of the "targetClient" property is ignored, and the messages that are put to the queue contain an MQRFH2 header, which is the default behaviour without specifying the value of the "targetClient" property.
Local fix
Problem summary
**************************************************************** USERS AFFECTED: This issue affects users of: - The IBM MQ V9.0 classes for JMS, where the IBM MQ classes for JMS also include an interim fix for APAR IT26587. - The IBM MQ V9.0 resource adapter, where the IBM MQ resource adapter also includes an interim fix for APAR IT26587. - The IBM MQ V9.1.0.1 classes for JMS. - The IBM MQ V9.1.0.1 resource adapter. who are asked to collect an IBM MQ classes for JMS trace of an application that creates JMS destinations programmatically. Platforms affected: MultiPlatform **************************************************************** PROBLEM DESCRIPTION: As part of APAR IT26587, the internal WMQDestination class within the IBM MQ classes for JMS was updated to implement a "toString()" method. This new method was invoked when IBM MQ classes for JMS trace was enabled, and returned a String object containing a URI representation of the JMS destination being traced. The mechanism used by the "toString()" method to construct the URI resulted in the following behaviour: - If an application created a JMS destination programmatically from a URI, which contained one or more name/value pairs representing the properties of the destination. - And the application was run with IBM MQ classes for JMS trace enabled. then the properties contained within the name/value pairs were not configured on the JMS destination that was created and returned back to the application - resulting in the default configuration values being used for the destination.
Problem conclusion
Two changes have been made to the internal WMQDestination class as a result of this APAR: - The class has been updated to cache the String representing the URI for a JMS destination. - The "toString()" method has been updated to return either the cached URI for the JMS destination, or a String containing the object reference if the URI has not been calculated at the time of asking. This means that the method on the MQ classes for JMS internal class: WMQDestination.toString() does not generate the URI for a JMS destination whenever it is called by the the IBM MQ classes for JMS trace mechanism. As a result: - If an application creates a JMS destination programmatically from a URI, which contains one or more name/value pairs representing the properties of the destination. - And the application is run with IBM MQ classes for JMS trace enabled. then the properties specified by the name/value pairs will be set on the JMS destination that is returned to the application. --------------------------------------------------------------- The fix is targeted for delivery in the following PTFs: Version Maintenance Level v9.0 LTS 9.0.0.6 v9.1 CD 9.1.3 v9.1 LTS 9.1.0.2 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
IT28156
Reported component name
IBM MQ BASE M/P
Reported component ID
5724H7261
Reported release
900
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2019-02-19
Closed date
2019-03-08
Last modified date
2019-03-08
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
[{"Business Unit":{"code":"BU053","label":"Cloud & Data Platform"},"Product":{"code":"SSYHRD","label":"IBM MQ"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"9.0","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]
Document Information
Modified date:
08 March 2019