The re-dispatch is triggered by the tcp connection dying, netstat can help
with the diagnosis here. Check the connection state of the broker port after
the client host is rebooted, if the connection is still active, possibly in
a timed_wait state, you may need to configure some additional timeout
options on the broker side.

On 13 April 2010 19:43, Josh Carlson <jcarl...@e-dialog.com> wrote:

> I am using client acknowledgements with a prefetch size of 1 with no
> message expiration policy. When a consumer subscribes to a queue I can see
> that the message gets dispatched correctly. If the process gets killed
> before retrieving and acknowledging the message I see the message getting
> re-dispatched (correctly). I expected this same behaviour if the host
> running the process gets rebooted or crashes. However, after reboot I can
> see that the message is stuck in the dispatched state to the consumer that
> is long gone. Is there a way that I can get messages re-dispatched when a
> host hosting consumer processes gets re-booted? How does it detect the case
> when a process dies (even with SIGKILL)?
>
> I did notice that if I increase my prefetch size and enqueue another
> message after the reboot, that activemq will re-dispatch the original
> message. However with prefetch size equal to one the message never seems to
> get re-dispatched.
>



-- 
http://blog.garytully.com

Open Source Integration
http://fusesource.com

Reply via email to