What is the difference between queue and topic?
JMS Interview Questions and Answers
(Continued from previous question...)
60. What is the difference between queue and topic?
A connection is created between the client and the
server from a connection factory. Connections can be
shared by several threads. The user credentials are
supplied at this level. It is probably common for a
client application to share access to a single
connection to the server (unless different security
credentials are required for different destinations).
A session is created from a connection. The session
may only be used by one thread at one time. The user
credentials are inherited from the parent connection.
It is probably common for each MessageProducer
(TopicPublisher or QueueSender) or MessageConsumer
(TopicSubscriber or QueueReceiver) to have their own
session due to the threading restriction.
You can look at it like a tree. At the top you have a
connection factory, beneath this you have your
connections and then beneath the connections you have
sessions. The leaves of the tree are the JMS actors
(MessageProducers and MessageConsumers).
Both work on 2 different comminication models. Queue
is point-to-point and topic is publish-subscriber.
In queues, one message can be consumed by only one client.
But in the topics, one message can be consumed by many
clients. Both are separate domains in MOM.
Queue represent Point-To-Point domain and Topic represent Pub/Sub
A point-to-point (PTP) product or application is built
around the concept of message queues, senders, and
receivers. Each message is addressed to a specific
queue, and receiving clients extract messages from the
queue(s) established to hold their messages. Queues
retain all messages sent to them until the messages
are consumed or until the messages expire.
In a publish/subscribe (pub/sub) product or
application, clients address messages to a topic.
Publishers and subscribers are generally anonymous and
may dynamically publish or subscribe to the content
hierarchy. The system takes care of distributing the
messages arriving from a topic's multiple publishers
to its multiple subscribers. Topics retain messages
only as long as it takes to distribute them to current
(Continued on next question...)
Other Interview Questions