I already have consumers seamlessly reconnecting to a new server during a HA event.
Basically what I do on failover is to create a new consumer on the new server, replace IDs
and re-register the Callback handler. The server at this point will think it's a new
client coming. In case of durable subscribers/queues and persistent messages you will have
the queue refilled
There are some issues that I would like to discuss now:
If the consumer receives a message from CallBack but if it didn't send an ACK yet,
after the failover, the server not knowing the message might throw an exception (messageId
not known).
There are a couple of use cases we have to consider.
- Persistent Messages. (how to treat a redelivery).
- Should we send the list of previously ACKs to the server?
- Should we ignore ACKs for non existent messages on the server?
Second point also:
What to do when a durable subscriber gets the queue refilled?
- The client will probably receive the message again. I would just ignore redeliveries.
I'm considering having a conference call with developers about these possibilities.
Clebert Suconic
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3978860#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...