aspose file tools*
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
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.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Doubt in JMS pub/sub model