This week's book giveaways are in the Java EE and JavaScript forums.
We're giving away four copies each of The Java EE 7 Tutorial Volume 1 or Volume 2(winners choice) and jQuery UI in Action and have the authors on-line!
See this thread and this one for details.
The moose likes EJB and other Java EE Technologies and the fly likes Doubt in JMS pub/sub model Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of The Java EE 7 Tutorial Volume 1 or Volume 2 this week in the Java EE forum
or jQuery UI in Action in the JavaScript forum!
JavaRanch » Java Forums » Java » EJB and other Java EE Technologies
Bookmark "Doubt in JMS pub/sub model" Watch "Doubt in JMS pub/sub model" New topic
Author

Doubt in JMS pub/sub model

B.Sathish
Ranch Hand

Joined: Aug 18, 2005
Posts: 372
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

Joined: Feb 27, 2002
Posts: 8919

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.


Groovy
B.Sathish
Ranch Hand

Joined: Aug 18, 2005
Posts: 372
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

Joined: Feb 27, 2002
Posts: 8919

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.
 
 
subject: Doubt in JMS pub/sub model