"adrian(a)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#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...