[jboss-dev-forums] [Design of Messaging on JBoss (Messaging/JBoss)] - Re: Asynchronous acknowledgements
timfox
do-not-reply at jboss.com
Wed Jul 12 13:01:23 EDT 2006
"adrian at jboss.org" wrote : You must have some notion of NACKs, otherwise how do you handle
| all the cases that need redeliveries?
|
| e.g. An error during a message listener
|
The spec says that for auto ack or dups_ok then the same message must be redelivered immediately. No need to send anything to the server here since we already have the message on the client and we just retry the onMessage method up to a maximum number of times.
anonymous wrote :
| e.g.2. Closing a CLIENT_ACKNOWLEDGE session without
| acknowledging the messages
|
In this case when the sesssion closes, the server gets the "close session" invocation and knows which messages have been sent to the session but not acked so it just nacks (cancels) them back to the queue. No need to send a nack for each message from client to server.
anonymous wrote :
| e.g.3. closing the receiver there is a race condition
| on the server delivering a message
|
| receiver -> I want a message
| server -> there is none, just wait
| sender -> send message
| server -> queue delivery of message
| receiver -> close()
| delivery -> Oh! The receiver has vanished -> NACK!
|
Right. In this case we send a nack from client to server. In messaging terminology we call it a "cancel" :)
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3957428#3957428
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3957428
More information about the jboss-dev-forums
mailing list