About the JMS Connector - Mule 4

Anypoint Connector for JMS (Java Message Service) (JMS Connector) is a widely-used API for message oriented middleware. It allows communication between different components of a distributed application to be loosely coupled, reliable, and asynchronous.

JMS supports two models for messaging:

  • Point-to-point queues

  • Publish and subscribe topics

JMS Connector enables sending and receiving messages to queues and topics for any message service that implements the JMS specification.

For reference information about specific versions of JMS Connector, see:

Point-to-Point Queues

In the point-to-point or queuing model, a sender posts messages to a particular queue and a receiver reads messages from the queue. Here, the sender knows the destination of the message and posts the message directly to the receiverโ€™s queue.

The point-to-point queuing model is characterized by the following:

  • Only one consumer receives the message.

  • The sender does not need to be running at the time the consumer consumes the message, nor does the consumer need to be running at the time the message is sent.

  • Every message that is successfully processed is acknowledged by the consumer.

Publish and Subscribe Topics

The publish-subscribe model supports publishing messages to a particular message topic. Subscribers can register to receive messages on a particular message topic. In this model, neither the publisher nor the subscriber are aware of each other. An anonymous bulletin board is a good analogy for this concept.

The publish-subscribe model is characterized by the following:

  • Multiple consumers (or none) receive the message.

  • The publisher must create a message topic to which clients can subscribe.

  • The subscriber must remain continuously active to receive messages, unless it has established a durable subscription, in which case, messages published while the subscriber is not connected are redistributed when the subscriber reconnects.

Was this article helpful?

๐Ÿ’™ Thanks for your feedback!

Edit on GitHub