Liberty embedded JMS messaging provider
Liberty messaging is an embedded messaging feature in Liberty. It is a composable, flexible, and dynamic JMS messaging engine that runs within Liberty. Liberty messaging is both JMS 1.1 and JMS 2.0 specifications compliant and supports both the point-to-point and publish/subscribe messaging models.
Liberty messaging runs only in the Liberty run time, and you can use the Liberty feature manager to enable or disable the messaging features as required. Because the messaging run time is highly composable, you can enable the basic messaging features for the run time, and dynamically enable more messaging features, such as security, transactions, and remote communication, based on your requirement.
- JMS Server run time: Provides all the runtime capabilities for connections, transactions, persistence, security, and so on.
- JMS Client connectivity: Provides the resource adapter support to allow JMS clients to perform synchronous and asynchronous messaging activities.
The messaging engine runs as a singleton instance in Liberty, which means that at any specific time, there can be only one messaging engine that is running in a Liberty kernel.
Liberty messaging architecture

The messaging run time and the other messaging subcomponents are run as OSGi bundles in an OSGi framework. This enables the Liberty kernel to load or unload the messaging bundles based on the usage. For example, if the user does not use the messaging security, then the bundles that are related to the messaging security are not initialized.
Application deployment
- In a Liberty that is hosting the messaging engine.
- In a different Liberty that is not hosting any messaging engine.
- In WebSphere® Application Server traditional.

Liberty messaging supports both in-process and network TCP/IP connectivity for applications. When the JMS application is deployed in the same JVM where the messaging engine is running, the application can communicate with the in-process messaging engine, without going over the TCP/IP layer. This provides significant performance benefits for the applications to send and receive messages.
JMS applications that are running on Liberty that is not hosting the messaging engine must connect over TCP/IP in order to communicate with the messaging engine.
Message handling
