[V8.0.0.2 Feb 2015]

JMS: Exception listener changes in Version 8.0

In IBM® MQ 8.0, when using IBM MQ classes for JMS, changes are made to the way in which an application's JMS ExceptionListener is invoked.

[V8.0.0.2 Feb 2015]From IBM MQ 8.0.0, Fix Pack 2, by default, IBM MQ classes for JMS delivers an exception to the exception listener only when a connection is broken, which is consistent with the JMS specification. For IBM MQ classes for JMS to inform the exception listener of all exceptions, your application must set the ASYNCEXCEPTION property of the connection factory to ASYNC_EXCEPTIONS_ALL.

[V8.0.0.6 Jan 2017]APAR IT14820, included from IBM MQ 8.0.0, Fix Pack 6, updates IBM MQ classes for JMS so 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 is only 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.