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.


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 we 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 we can use JMS to communicate between different application servers or we 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 we are familiar with IBM MQ in environments other than Java, using either procedural or object-oriented languages, we can transfer your existing knowledge to the Java environment by using IBM MQ classes for Java. We 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 Version 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 Use WebSphere MQ Java Interfaces in J2EE/JEE Environments.