Java Message Service (JMS)

Java™ Message Service (JMS) is an API that allows application components based on Java EE to create, send, receive, and read messages. JMS support in Liberty is supplied as a group of related features that support the deployment of JMS resource adapters.

JMS can run in a managed mode in which queues, topics, connections, and other resources are created and managed through server configuration. This includes the configuration of JMS connection factories, queues, topics, and activation specifications. Alternatively it can run in unmanaged mode where all resources are manually configured as part of the application. The Liberty embedded JMS messaging provider is managed, and therefore all resources are set up as part of the server.xml configuration.

JMS specifications

The JMS specification level supported in a Liberty JVM server is JMS 2.0 support. JMS 2.0 support (jms-2.0) enables the configuration of resource adapters to access messaging systems using the Java Message Service API at the 2.0 specification level.

JMS clients

Different JMS client providers are supported in the Liberty JVM server through the following Liberty features:
  • WebSphere® MQ JMS 2.0 client ( wmqJmsClient-2.0 ) - the WebSphere MQ JMS client feature that allows JMS 2.0 or 1.1 client applications to send and receive messages from a remote MQ server.
  • WebSphere Application Server JMS 2.0 client (wasJmsClient-2.0) - WebSphere Application Server client feature that allow JMS 2.0 or 1.1 client applications to send and receive messages from the messaging engine that is enabled through the wasJmsServer feature.
  • Any other JMS resource adapter that complies with the JCA 1.6 specification can also be used in Liberty by using generic JCA resource adapters links, see Overview of JCA configuration elements.

JMS providers

Liberty in CICS® TS supports usage of the:
  • Liberty embedded JMS messaging provider.
    • WebSphere messaging server (wasJmsServer-1.0) - the JMS server feature enables the embedded JMS messaging provider to be hosted within Liberty by using the server feature so that a separate JMS server does not need to be installed or configured, see Enabling JMS messaging for a single Liberty server . The server can also be hosted in a separate Liberty instance either inside CICS or in a Liberty server hosted in z/OS® or on a distributed platform, see Enabling JMS messaging between two Liberty servers . The WebSphere JMS messaging client component can also be configured to talk to JMS via SIBUS running in a WebSphere Application Server, see Enabling interoperability between Liberty and WebSphere Application Server traditional.
    • WebSphere messaging security (wasJmsSecurity-1.0) - the JMS security feature provides security support for the embedded JMS messaging provider client and server components. The JMS security feature can be used with the cicsts:security-1.0 feature to specify which users from the security registry are to be used by a connection factory when authenticating requests against the embedded JMS messaging server. For information on authorization, see Authorizing users to connect to the messaging engine.
  • JMS access to IBM® MQ in a CICS standard-mode Liberty JVM server when the JMS application connects using either bindings or client mode transport.
  • JMS access to IBM MQ in a CICS integrated-mode Liberty JVM server when the JMS application connects using the client mode transport.
  • Third-party JMS resource adapters that comply with the JCA 1.6 specification.