IBM MQ classes for JMS/Jakarta Messaging
IBM® MQ classes for JMS and IBM MQ classes for Jakarta Messaging are the messaging providers that are supplied with IBM MQ. Each of these providers also provides two sets of extensions to the messaging API. Both Java Platform, Standard Edition ( Java SE) and Java Platform, Enterprise Edition ( Java EE) applications can use these messaging providers.
IBM MQ 9.3.0 introduces support for Jakarta Messaging 3.0. JMS 2.0 is still fully supported.
The JMS and Jakarta Messaging specifications define a set of interfaces that applications can use to perform messaging operations. From IBM MQ 8.0, the product supports the JMS 2.0 version of the JMS standard. This implementation offers all the features of the classic API but requires fewer interfaces and is simpler to use. For more information, see JMS and Jakarta Messaging model and the JMS 2.0 specification at Java.net. From IBM MQ 9.3.0, Jakarta Messaging is also supported.
- IBM MQ classes for JMS is a JMS provider that implements the JMS interfaces for IBM MQ and also provides the following two sets of extensions to
the JMS API:
- IBM MQ JMS extensions
- IBM JMS extensions
- A connection factory, queue, or topic object created using the javax.dims, or jakarta.jms, interfaces or either set of JMS extensions can be addressed using any of these APIs; that is, it can be cast to any of the interfaces. To maintain application portability at the highest level, use the most generic API that is suitable for your requirements.
Because JMS and Jakarta Messaging share much in common, further references to JMS in this topic can be taken as referring to both. Any differences are highlighted as necessary.
IBM MQ JMS extensions
IBM MQ classes for JMS also provides extensions to the JMS API. IBM MQ classes for JMS contains extensions that are implemented in 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. These extensions are termed the IBM MQ JMS extensions. Note that, in this documentation, objects that are created dynamically by an application at run time are not considered to be administered objects.
IBM JMS extensions
- 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.