How works Exactly Once delivery for Pub/Sub?
Hello
For example there is the following system landscape:
JMSServer, Sender, Receiver1, Receiver2
All clients uses the same topic.
Sender sends Message1 to Topic on JMSServer. Receiver1 connects and receives Message1. Then Receiver1 disconnects.
After that Sender sends Message2 to the same topic.
In this case Receiver1 must receive Message2 only and Receiver 2 must receive Message1 and Message2.
How does JMS Server determine that Receiver1 has received Message1 alrady?
[526 byte] By [
a_svla] at [2007-10-3 3:56:27]

You can't do this with topics - When a message is written to a topic all subscribers get a copy of the message. If your mesasge is durable it will be read by any new subscribers for the lifetime of the message.
Why do you need to the same receiver to pick up message 2?
How long between message 1 and message 2?
Yes I am talking about durable subscribers.
The time between message1 and message2 can be 1 day or 1 hour It doesn't matters.
All receivers must receive message1 and message2. But how do JMS Server determine that Receiver1 has received message1 already(when receiver1 connects second time)? jms server must send only message2 for recever1 when it connects second time.
a_svla at 2007-7-14 21:54:39 >

Now I understand.
JMS will maintain the order messages are published from each client so you will get this behaviour for free, with the caveats specified on page 66 of the JMS Spec 1.1
http://java.sun.com/products/jms/docs.html
Also if your JMS Server is clustered the message order will probably go out the window.
You may want to set your messages (or topic if your JMS provider permits it) to be non-expiring.