The message will only be delivered to another consumer if it hasn't yet
been acknowledged.  And whether that has happened at the point your process
dies depends on what your acknowledgement mode is.  The default is
auto-ack, where a message is acked as soon as it is delivered to a
consumer, even if it hasn't been successfully processed.  But there are
other acknowledgement modes, as well as transactions, and the behavior
you'll see depends on exactly which options you're using.  The wiki has
lots more detail about both acknowledgement modes and transactions.

Keep in mind that a kill -9 will sever TCP connections without cleanly
shutting them down, so the remote (broker) end won't close until the
timeout expires, which can lead to undesirable effects in some
circumstances. So think about whether what you're doing is actually the
right choice, compared to calling System.exit() or something similar.

Tim

On Jul 28, 2016 4:50 AM, "raster3" <crs...@yahoo.co.in> wrote:

> Hi,
> Lets say there are 2 similar message listeners in two different jvms.
> They receive numbers as text messages.
> in 1st listener 3 will cause a Kill -9 of the listener process using
> Processbuilder and some means to detect process id.
> In 2nd listener 4 will cause  a Kill -9 of the listener process using
> Processbuilder and some means to detect process id.
> if kill -9 is executed in one listener (when message or rather its thread
> is
> inside the listener method) is it safe to assume the message will be
> received by the other listener?  Or will this message be lost?
>
> Thanks.
> Raster
>
>
>
> --
> View this message in context:
> http://activemq.2283324.n4.nabble.com/kill-9-in-message-listener-tp4714620.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>

Reply via email to