Relationship with IBM MQ classes for Java

Since IBM® WebSphere® MQ 7.0, IBM WebSphere MQ classes for JMS and IBM WebSphere MQ classes for Java are implemented as peers. This implementation is different from earlier releases where the implementation of IBM WebSphere MQ classes for JMS depended on IBM WebSphere MQ classes for Java.

For versions earlier than IBM WebSphere MQ 7.0, IBM WebSphere MQ classes for JMS was implemented almost entirely as a layer of code on top of IBM WebSphere MQ classes for Java. This arrangement has caused some confusion among application developers because setting fields or calling methods in the MQEnvironment class can cause unwanted and unexpected effects on the runtime behavior of code that is written by using IBM MQ classes for JMS. In addition, the implementation of IBM MQ classes for JMS had some constraints in areas where the JMS API is not a natural fit on top of IBM MQ classes for Java, and these constraints have led to some issues regarding runtime performance.

From IBM WebSphere MQ 7.0, the implementation of IBM MQ classes for JMS is no longer dependent on IBM MQ classes for Java. IBM MQ classes for Java and IBM MQ classes for JMS are now peers that use a common Java interface to the MQI. This arrangement allows more scope for optimizing performance, and means that setting fields or calling methods in the MQEnvironment class has no effect on the runtime behavior of code that is written by using IBM MQ classes for JMS. Figure 1 shows the relationship between IBM MQ classes for JMS and IBM MQ classes for Java in previous releases of IBM WebSphere MQ classes for JMS and in releases before IBM WebSphere MQ 7.0 and how this relationship has changed for later releases.

Figure 1. The relationship between IBM MQ classes for JMS and IBM MQ classes for Java
This figure is described in the surrounding text.

To maintain compatibility with releases before IBM WebSphere MQ 7.0, channel exit classes that are written in Java can still use the IBM MQ classes for Java interfaces, even if the channel exit classes are called from IBM MQ classes for JMS. However, using the IBM MQ classes for Java interfaces means that your applications are still dependent on the IBM MQ classes for Java JAR file, com.ibm.mq.jar. If you do not want com.ibm.mq.jar in your class path, you can use the set of interfaces in the com.ibm.mq.exits package instead.

From IBM WebSphere MQ 7.0, you can create and configure JMS administered objects with the IBM MQ Explorer.