IBM MQ Java language interfaces

IBM® MQ provides three application programming interfaces (APIs) for use in Java applications: IBM MQ classes for Jakarta Messaging, IBM MQ classes for JMS, and IBM MQ classes for Java.

IBM supports, and is an active participant in, open standards.
  • From IBM MQ 8.0, the product implements the JMS 2.0 standard, which introduced a new simplified API together with features such as shared subscriptions.
  • [MQ 9.3.0 Jun 2022][MQ 9.3.0 Jun 2022]From IBM MQ 9.3.0, Jakarta Messaging 3.0 is also supported.
  • In addition, WebSphere® Liberty supports JMS 2.0 and Jakarta Messaging 3.0 with IBM MQ.

Within IBM MQ there are three APIs for use in Java applications:

[MQ 9.3.0 Jun 2022][MQ 9.3.0 Jun 2022][Jakarta Messaging 3.0]IBM MQ classes for Jakarta Messaging
IBM MQ classes for Jakarta Messaging is a Jakarta Messaging provider that implements the Jakarta Messaging interfaces for IBM MQ as the messaging system. The Jakarta Connectors Architecture provides a standard way of connecting applications running in a Jakarta EE environment to an Enterprise Information System (EIS) such as IBM MQ or Db2®.
[JMS 2.0]IBM MQ classes for JMS
IBM MQ classes for JMS is a JMS provider that implements the JMS interfaces for IBM MQ as the messaging system. 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.
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.
Note:
  • [MQ 9.3.0 Jun 2022][MQ 9.3.0 Jun 2022]JMS 2.0 has been superseded by Jakarta Messaging. IBM MQ classes for JMS continues to support the JMS 2.0 standard, but future enhancements to Java messaging will only emerge in Jakarta Messaging, hence in the IBM MQ classes for Jakarta Messaging. IBM MQ classes for JMS are only recommended for maintaining and extending existing JMS 2.0 applications. IBM MQ classes for Jakarta Messaging should be the preferred technology for new development.
  • [Stabilized]IBM MQ classes for Java are functionally stabilized at the level shipped in IBM MQ 8.0. Existing applications that use the IBM MQ classes for Java will continue to be fully supported, but this API is stabilized, so new features will not be added and requests for enhancements rejected. Fully supported means that defects will be fixed together with any changes necessitated by changes to IBM MQ System Requirements.

[MQ 9.3.0 Jun 2022][MQ 9.3.0 Jun 2022][Jakarta Messaging 3.0]From IBM MQ 9.3, the IBM MQ classes for Java, IBM MQ classes for JMS, and IBM MQ classes for Jakarta Messaging are built with Java 8. Java runtime environments at or above these levels must be used to run applications using these interfaces.