You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by rxg <ro...@yahoo.co.uk> on 2009/03/20 15:57:56 UTC

Forcing queue flush through to consumers/browsers?

Hi all,
I am looking to replace a system of file exchange between two of our systems
with a system based on JMS, the idea being the following:
1) System A writes a small number of medium- and large-sized events to a
Queue over a period of time (let's say several hundred of the order of 4K
per message, with a few biggies of 4M, all over 2 hours)
2) System B periodically snapshots the queue, consumes all available
messages and writes OK or NOT_OK messages to a different queue for
consumption by the upstream system
3) System A has a consumer thread that is blocks on receive() until there
are OK or NOT_OK messages to be consumed

However, while I can get a trivial example to work fine, attempts to test
anything beyond a toy set-up have not been fruitful.  Examples of problems
that I've had:
a) System B sees no messages with receiveNoWait while there have been
several sitting in the queue for an hour - fixed by using prefetch=0 in the
consumer
b) Problems writing large messages to the same queue that I'm consuming from
(in the same thread) - fixed by disabling flow control
c) prefetch=0 causes QueueBrowser to hang AMQ-2171
d) QueueBrowser only shows the first 20 or so messages in the queue (with
prefetch != 0), while there may be several hundred AMQ-2172

I've been checking out ActiveMQ (standalone config) for the last week or so
and at this point I feel that either I'm missing something, or I'm trying to
do something that it wasn't designed for - or both!  Should I keep
persisting - and filing bugs ;) - or have I misunderstood some core
functionality?

The frustrating thing is that writing messages to the queue seems to be
mostly OK (apart from problem b above), since I can easily see the desired
messages in the desired queues with the web console.  It's just that my
system B doesn't seem to see the same thing as the web console!  Am I
somehow missing a magic "write-through-to-clients" setting in the broker? 
(I have seen the doc on async write, flow control and prefetch, but maybe
there are other knobs to twiddle?)

Thanks for any pointers you can give,
Robert
-- 
View this message in context: http://www.nabble.com/Forcing-queue-flush-through-to-consumers-browsers--tp22621755p22621755.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.