Any updates on this issue?  This seems very similar to a problem we are
experiencing with the broker halting dispatch of messages to consumers that
are ready and able to receive messages.  Our problem definitely seems to be
surrounding the flagging of messages as persistent.  Our current work-around
is we installed a plug-in that turns off the persistent flag before the
message is inserted into the broker destinations.  This allowed us to avoid
any client-side code/logic changes.  Once we forced all messages to turn off
the persistent flag, then all of our messages are flowing without any
hiccups.

I am very suspect of the code logic inside ActiveMQ that handles persistent
message routing and delivery.  This is with the shipping 5.1.0, 5.2.0, and
previous 5.3-SNAPSHOT versions.  I haven't updated 5.3 in about a month, so
I can't speak to the very latest version.

- Jim

On Tue, Jan 13, 2009 at 12:02 PM, IBeaumont <ibeaum...@categoric.com> wrote:

>
> The application is already written, and currently we use either MQSeries or
> SwiftMQ for the queue provider.  I tried to drop ActiveMQ in a few years
> back but the performance was awful.  With version 5 it seems the
> performance
> problems are sorted.  Implementing a MessageListener isn't an ideal
> solution
> as I'd need to change a lot of other code.  I'm trying to avoid any
> changes.
>
>
>
> bsnyder wrote:
> >
> > On Tue, Jan 13, 2009 at 12:35 PM, IBeaumont <ibeaum...@categoric.com>
> > wrote:
> >>
> >> I'm sending a mixture of persistent and non persistent messages.
> >>
> >> I have seen a negative queue count before so will look at the trunk.
> >>
> >> Can't see anything unusal in JConsole, but I have just downlaoded the
> >> source
> >> and in the ActiveMQMessageConsumer.receiveNoWait there are these
> lines...
> >>        if (info.getPrefetchSize() == 0) {
> >>            md = dequeue(-1); // We let the broker let us know when we
> >>            // timeout.
> >>        } else {
> >>            md = dequeue(0);
> >>        }
> >>
> >> So that explains why my consumes seem to hang when things go wrong -
> >> because
> >> they wait forever because I have a prefetchSize of zero.
> >>
> >> I've now changed me code so that instead of using receiveNoWait, I'll
> use
> >> "receive" with a short timeout.  Hopefully then things will timeout and
> >> messages will contiue to be processed.  I'll then need to find out if
> all
> >> any messages get skipped.   ALthough that doesn't help find the cause.
> >
> > I'm just curious, instead of using the synchronous methods have you
> > considered using the asynchronous API by implementing a
> > MessageListener?
> >
> > Bruce
> > --
> > perl -e 'print
> > unpack("u30","D0G)u8...@4vyy9&5R\"F)R=6-E+G-N>61E<D\!G;6%I;\"YC;VT*"
> > );'
> >
> > Apache ActiveMQ - http://activemq.org/
> > Apache Camel - http://activemq.org/camel/
> > Apache ServiceMix - http://servicemix.org/
> >
> > Blog: http://bruceblog.org/
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/Q-Consumers-stop-receiving-messages-tp21438163p21443338.html
> Sent from the ActiveMQ - User mailing list archive at Nabble.com.
>
>

Reply via email to