Using IBM MQ classes for JMS

IBM® MQ classes for Java Message Service (IBM MQ classes for JMS) is the JMS provider that is supplied with IBM MQ. As well as implementing the interfaces defined in the javax.jms package, IBM MQ classes for JMS provides two sets of extensions to the JMS API.

The JMS specification defines a set of interfaces that applications can use to perform messaging operations. The latest version of the specification is JMS 2.0. The javax.jms package defines the JMS interfaces, and a JMS provider implements these interfaces for a specific messaging product. IBM MQ classes for JMS is a JMS provider that implements the JMS interfaces for IBM MQ.

The JMS specification expects ConnectionFactory and Destination objects to be administered objects. An administrator creates and maintains administered objects in a central repository, and a JMS application retrieves these objects using the Java Naming Directory Interface (JNDI). IBM MQ classes for JMS supports the use of administered objects, and an administrator can use either the IBM MQ JMS administration tool or IBM MQ Explorer to create and maintain administered objects.

IBM MQ classes for JMS also provides two sets of extensions to the JMS API. The main focus of these extensions concerns creating and configuring connection factories and destinations dynamically at run time, but the extensions also provide function that is not directly related to messaging, such as function for problem determination.
The IBM MQ JMS extensions
Previous releases of IBM MQ classes for JMS contain extensions that are implemented in objects such as MQConnectionFactory, MQQueue, and MQTopic objects. These objects have properties and methods that are specific to IBM MQ. The objects can be administered objects, or an application can create the objects dynamically at run time. This release of IBM MQ classes for JMS maintains these extensions, which are now known as the IBM MQ JMS extensions. You can continue to use, without change, any applications that use these extensions.
The IBM JMS extensions
This release of IBM MQ classes for JMS provides a more generic set of extensions to the JMS API, which are not specific to IBM MQ as the messaging system. These extensions are known as the IBM JMS extensions and have the following broad objectives:
  • To provide a greater level of consistency across IBM JMS providers
  • To make it easier to write a bridge application between two IBM messaging systems
  • To make it easier to port an application from one IBM JMS provider to another

The extensions provide function that is similar to that provided in IBM Message Service Client for C/C++ and IBM Message Service Client for .NET.

From IBM MQ 8.0, the IBM MQ classes for JMS are built with Java 7. The Java 7 runtime environment supports running earlier class file versions.

[V9.0.0.6 Mar 2019]IBM MQ 9.0.5 was the final Continuous Delivery release for IBM MQ 9.0. Therefore, from IBM MQ 9.0.0 Fix Pack 6 onwards, the Javadoc information for the IBM MQ classes for JMS is updated to reflect the behavior of the IBM MQ classes for JMS only for features available to Long Term Support customers.