[jboss-dev-forums] [Design of Messaging on JBoss (Messaging/JBoss)] - Re: Once and only once delivery?
adrian@jboss.org
do-not-reply at jboss.com
Tue Oct 10 10:11:05 EDT 2006
I don't understand what you are trying to do?
To solve the original problem, you create a transacted session.
It is certainly true that for a local tx, you always have the problem
of the "transaction observer".
1) create transacted session
2) send 10 messages in the session
3) commit the session
The problem being that (3) can work on the server but the network
connection fails just at this point, so the client gets a JMSException
rather than the commited ok message.
Using 2PC certainly solves the problem, because you can prepare()
and once you get the ok from that, you are done.
If the commit fails (network connection),
you can always retry it later using recover().
Tracking messages ids isn't going to work, unless you
are prepared to hold all messages that were ever sent.
1) Client send 10 messages with some identitier on them
(commit seems to fail because of network connection).
2) Server deliver 10 messages to receiver which are then
ACK and removed from the store.
3) Client resend 10 messages with the same identiter
4) Server happily resends them because it no longer has
the original 10 in its store.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3977249#3977249
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3977249
More information about the jboss-dev-forums
mailing list