Developing JMS and Java applications

IBM® MQ provides two Java language interfaces: IBM MQ classes for Java Message Service and IBM MQ classes for Java.

About this task

Within IBM MQ there are two alternative APIs for use in Java applications. A Java application can use either IBM MQ classes for JMS or IBM MQ classes for Java to access IBM MQ resources.

IBM MQ classes for JMS
IBM MQ classes for Java Message Service (JMS) is the JMS provider that is supplied with IBM MQ. The Java Platform, Enterprise Edition Connector Architecture (JCA) provides a standard way of connecting applications running in a Java EE environment to an Enterprise Information System (EIS) such as IBM MQ or Db2®.
If you are not familiar with IBM MQ, or already have JMS experience, you might find it easier to use the familiar JMS API to access IBM MQ resources, by using IBM MQ classes for JMS. JMS is also an integral part of the Java Platform, Enterprise Edition ( Java EE) platform. Java EE applications can use message-driven beans (MDBs) to process messages asynchronously. JMS is also the standard mechanism for Java EE to interact with asynchronous messaging systems such as IBM MQ. Every application server that is Java EE compliant must include a JMS provider, therefore you can use JMS to communicate between different application servers or you can port an application from one JMS provider to another without any change to the application.
IBM MQ classes for Java
IBM MQ classes for Java enable you to use IBM MQ in a Java environment. IBM MQ classes for Java allow a Java application to connect to IBM MQ as an IBM MQ client, or connect directly to an IBM MQ queue manager.
IBM MQ classes for Java encapsulates the Message Queue Interface (MQI), the native IBM MQ API, and uses the same object model as other object-oriented interfaces, whereas IBM MQ classes for Java Message Service implements Oracle's Java Message Service (JMS) interfaces.
If you are familiar with IBM MQ in environments other than Java, using either procedural or object-oriented languages, you can transfer your existing knowledge to the Java environment by using IBM MQ classes for Java. You can also exploit the full range of features of IBM MQ, not all of which are available in IBM MQ classes for JMS.
Note:

IBM will make no further enhancements to the IBM MQ classes for Java and they are functionally stabilized at the level shipped in IBM MQ 8.0. Existing applications that use the IBM MQ classes for Java continue to be fully supported, but new features will not be added and requests for enhancements will be rejected. Fully supported means that defects will be fixed together with any changes necessitated by changes to IBM MQ System Requirements.

The IBM MQ classes for Java are not supported in IMS.

The IBM MQ classes for Java are not supported in WebSphere® Liberty. They must not be used with either the IBM MQ Liberty messaging feature, or with the generic JCA support. For more information, see Using WebSphere MQ Java Interfaces in J2EE/JEE Environments.