APAR status
Closed as program error.
Error description
WebSphere MQ V7.5 classes for JMS ---------------------------------------- When using the WebSphere MQ V7.5 classes for JMS, an application's JMS ExceptionListener will not be invoked for non-connection broken exceptions (for example, a JMSException wrapping an MQRC_GET_INHIBITED WebSphere MQ reason code) even if the JMS ConnectionFactory used by the application has the int property "JmsConstants.ASYNC_EXCEPTIONS" set to the value JmsConstants.ASYNC_EXCEPTIONS_ALL, which is the default in the V7.5.0.0 through to V7.5.0.6 classes for JMS. IBM MQ V8 classes for JMS ------------------------------- When using the IBM MQ V8 classes for JMS, if a JMS Session is using a TCP/IP socket that is different from the one used by its parent JMS Connection then, in the case where the TCP/IP associated with the JMS Session get broken, the application's ExceptionListener would not be invoked. The application's JMS ExceptionListener would also not be invoked if the application was making use of synchronous JMS API calls after the V8.0.0.3 Fix Pack. Furthermore, as with the MQ v7.5 classes for JMS case, the JMS ExceptionListener would also not be invoked for non-connection broken exceptions even when JMS ConnectionFactory used by the application has the int property "JmsConstants.ASYNC_EXCEPTIONS" set to the value JmsConstants.ASYNC_EXCEPTIONS_ALL. Note that from IBM MQ V8.0.0.2, the default value of the JmsConstants.ASYNC_EXCEPTIONS JMS ConnectionFactory property changed from: JmsConstants.ASYNC_EXCEPTIONS_ALL to: JmsConstants.ASYNC_EXCEPTIONS_CONNECTIONBROKEN. http://www.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm. mq.pro.doc/q123430_.htm?lang=en
Local fix
Problem summary
**************************************************************** USERS AFFECTED: This issue affects users of the: - WebSphere MQ V7.5 classes for JMS - IBM MQ V8 classes for JMS who configure their applications to use a JMS ExceptionListener. Platforms affected: MultiPlatform **************************************************************** PROBLEM DESCRIPTION: This APAR addresses four issues: Issue 1: ------------------ When using the WebSphere MQ V7.5 classes for JMS, the documented behaviour for a JMS ExceptionListener was that it would be invoked for any exception raised during asynchronous message delivery to a JMS MessageListener (not just for broken connection exceptions, for example MQRC_CONNECTION_BROKEN): http://www.ibm.com/support/knowledgecenter/SSFKSJ_7.5.0/com.ibm. mq.mig.doc/q001750_.htm?lang=en This was because the default value for the ASYNC_EXCEPTIONS JMS ConnectionFactory property is ASYNC_EXCEPTIONS_ALL. However, when using the MQ classes for JMS, non-connection broken exceptions (for example MQRC_GET_INHIBITED) were not delivered as JMSExceptions to the ExceptionListener registered by the application. Issue 2: ------------------ When using the IBM MQ V8 classes for JMS, an application's ExceptionListener would not be invoked for non-connection broken exceptions when JMS ConnectionFactory used by the application had the property "JmsConstants.ASYNC_EXCEPTIONS" set to the value JmsConstants.ASYNC_EXCEPTIONS_ALL. (The default from MQ V8.0.0.2 is JmsConstants.ASYNC_EXCEPTIONS_CONNECTIONBROKEN). Issue 3: ------------------ When using the IBM MQ V8 classes for JMS, the ExceptionListener registered on the JMS Connection by the application would only be invoked if the TCP/IP connection associated with the JMS Connection object was broken. This meant that if a JMS Session was using a different TCP/IP socket compared to the JMS Connection, the application's ExceptionListener would not be invoked if only that TCP/IP socket used by the JMS Session was broken. Issue 4: ------------------ After the MQ V8.0.0.3 Fix Pack, the ExceptionListener would only be invoked for a connection broken reason if the application was using asynchronous message consumers, and not when using synchronous message consumers.
Problem conclusion
To maintain behaviour for current JMS applications that configure a JMS MessageListener and a JMS ExceptionListener the default value for the ASYNC_EXCEPTIONS JMS ConnectionFactory property has been changed to ASYNC_EXCEPTIONS_CONNECTIONBROKEN for the WebSphere MQ V7.5 classes for JMS. As a result, by default, only exceptions corresponding to broken connection error codes are delivered to an application's JMS ExceptionListener. The WebSphere MQ V7.5 classes for JMS have also been updated such that JMSExceptions relating to non-connection broken errors, which occur during message delivery to asynchronous message consumers, are still delivered to a registered ExceptionListener when the JMS ConnectionFactory used by the application has the ASYNC_EXCEPTIONS property set to the value ASYNC_EXCEPTIONS_ALL. The IBM MQ v8 classes for JMS have been updated such that: - An ExceptionListener registered by an application is invoked for any connection broken exceptions regardless of whether the application is using synchronous or asynchronous message consumers. - An ExceptionListener registered by an application is invoked if a TCP/IP socket used by a JMS Session is broken. - Non-connection broken exceptions (for example MQRC_GET_INHIBITED) that arise during message delivery are delivered to an application's ExceptionListener when the application is using asynchronous message consumers and the JMS ConnectionFactory used by the application has the ASYNC_EXCEPTIONS property set to the value ASYNC_EXCEPTIONS_ALL. [Note: An ExceptionListener will only be invoked once for a connection broken exception, even if two TCP/IP connections (one used by a JMS Connection and one used by a JMS Session) are broken.] --------------------------------------------------------------- The fix is targeted for delivery in the following PTFs: Version Maintenance Level v7.5 7.5.0.8 v8.0 8.0.0.6 v9.0 CD 9.0.1 v9.0 LTS 9.0.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
IT14820
Reported component name
WMQ BASE MULTIP
Reported component ID
5724H7241
Reported release
750
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2016-04-17
Closed date
2016-06-20
Last modified date
2017-06-01
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
WMQ BASE MULTIP
Fixed component ID
5724H7241
Applicable component levels
[{"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSDEZSF","label":"IBM WebSphere MQ Managed File Transfer for z\/OS"},"Component":"","ARM Category":[],"Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"7.5","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]
Document Information
Modified date:
31 March 2023