Should I use IBM WebSphere MQ classes for Java or IBM WebSphere MQ classes for JMS?

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

IBM WebSphere MQ classes for Java encapsulates the Message Queue Interface (MQI), the native IBM WebSphere MQ API, and uses the same object model as other object-oriented interfaces, whereas IBM WebSphere MQ classes for Java Message Service implements Sun's Java Message Service (JMS) interfaces.

If you are familiar with IBM WebSphere 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 WebSphere MQ classes for Java. You can also exploit the full range of features of IBM WebSphere MQ, not all of which are available in IBM WebSphere MQ classes for JMS.

If you are not familiar with IBM WebSphere MQ, or already have JMS experience, you might find it easier to use the familiar JMS API to access IBM WebSphere MQ resources, by using IBM WebSphere 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, and MDBs can process only JMS messages. JMS is also the standard mechanism for Java EE to interact with asynchronous messaging systems such as IBM WebSphere 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.