Choosing to use IBM MQ classes for Java or IBM MQ classes for JMS

A Java application can use either IBM MQ classes for Java or IBM MQ classes for JMS to access IBM MQ resources. Each approach has its advantages.

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.

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, 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.

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 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.