Thursday, November 9, 2023

What is JMS (Java Message Service) ?

JMS, or Java Message Service, is a Java-based API that allows applications to create, send, receive, and read messages in a loosely coupled, reliable, and asynchronous manner. It's commonly used for communication between distributed systems or components.

Here's a brief overview of how JMS works: Messaging Models:

  • JMS supports two messaging models: Point-to-Point (P2P) and Publish/Subscribe (Pub/Sub).
  • P2P involves sending messages to a specific destination where only one consumer can receive the message.
  • Pub/Sub involves sending messages to a topic, and multiple subscribers can receive the message.


  • JMS involves two main components: Message Producers and Message Consumers.
  • Message Producers create and send messages to a destination.
  • Message Consumers receive and process messages from a destination.

Connections and Sessions:

  • JMS uses ConnectionFactory to establish a connection to a JMS provider (like a message broker).
  • Sessions are created within a connection to manage the flow of messages. They provide a transactional boundary for message processing.


  • Destinations represent the place where messages are sent or received. In P2P, it's a queue, and in Pub/Sub, it's a topic.


  • JMS messages are used to encapsulate data being sent between applications. There are different types of messages, such as TextMessage, ObjectMessage, etc.

Message Listeners:

  • Message Consumers can register as message listeners to asynchronously receive messages. When a message arrives, the listener's onMessage method is invoked.


  • Acknowledgment is the mechanism by which the receiver informs the JMS provider that the message has been successfully received and processed.


  • JMS supports transactions, allowing multiple messaging operations to be grouped together. Either all operations succeed, or they all fail.

JMS provides a flexible and robust way for Java applications to communicate through messaging, facilitating reliable and asynchronous communication between different components in a distributed system.

Learn more about Java here

No comments:

Post a Comment

Please do not enter any spam link in the comment box.

Revolutionizing Healthcare Delivery with Parachute Health

  In the rapidly evolving landscape of healthcare technology, innovations continually emerge to streamline processes and enhance patient car...