• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

Doubt in JMS pub/sub model

 
B.Sathish
Ranch Hand
Posts: 372
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Got a question about the pub/sub messaging model in JMS. Let's say there is a subscriber who has subscribed to a topic. The subscriber disconnects. Later he reconnects and resubscribes to the same topic. In which of the following scenarios will the subscriber get the messages that he missed when he was disconnected?

The missed messages are PERSISTENT and the subscriber has a DURABLE subscription - Yes
The missed messages are NON-PERSISTENT and the subscription is DURABLE - No
PERSISTENT messages and NON-DURABLE subscription - No
NON-PERSISTENT messages and NON-DURABLE subscription - No

So the subscriber will get the missed messages ONLY if the messages are PERSISTENT and his subscription is DURABLE. Is my understanding right? Are there any exceptions to be considered? Please clarify
 
Pradeep bhatt
Ranch Hand
Posts: 8933
Firefox Browser Java Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The missed messages are NON-PERSISTENT and the subscription is DURABLE - No


In durable subscription messages are persisted. So the above case does not arise.
So the subscriber will get the missed messages ONLY if the messages are PERSISTENT and his subscription is DURABLE. Is my understanding right? Are there any exceptions to be considered? Please clarify

Yes.
 
B.Sathish
Ranch Hand
Posts: 372
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks for replying Pradip

In durable subscription messages are persisted. So the above case does not arise


If I am a topic publisher using the TopicPublisher.publish() method, I can specify the Delivery Mode argument to the publish() method as javax.jms.DeliveryMode.NON_PERSISTENT. Hence I am publishing a non-persistent message. But the topic subscriber can have a durable subscription to the topic. This is what I meant by the case of non-persistent messages and durable subscriptions. What will happen in this case?
 
Pradeep bhatt
Ranch Hand
Posts: 8933
Firefox Browser Java Spring
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Originally posted by B Sathish:
Thanks for replying Pradip



If I am a topic publisher using the TopicPublisher.publish() method, I can specify the Delivery Mode argument to the publish() method as javax.jms.DeliveryMode.NON_PERSISTENT. Hence I am publishing a non-persistent message. But the topic subscriber can have a durable subscription to the topic. This is what I meant by the case of non-persistent messages and durable subscriptions. What will happen in this case?


If there is a durable subscriber then a message has to be persisted even if you mention NON_PERSISTENT.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic