activemq-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mike C <smith.not.west...@gmail.com>
Subject Broker with different queue behaviors when full
Date Mon, 10 Dec 2012 15:51:47 GMT
Hi,

I have a broker that has 2 queues: important.queue & problems.queue,

The important.queue contains messages that I need to process, and if I
have problems processing any of the messages I put the message into
the problems.queue with a bit of meta-data so I can look at it later.
It is like a DLQ but not just for unreachable destinations, and also
contains any meta-data gleaned from the consumer as well as stack
traces etc. So I can't just use the existing DLQ infrastructure of
ActiveMQ.

Is there any way to specify different storage characteristics for each
queue? I want the important.queue to block upon out of space, but the
problems.queue I don't care about soo much and would prefer to
FIFO-style evict the oldest messages from the queue to make space for
new messages. The problems.queue is persistent as while I don't care
about it as much as the incoming data, it still does have some valid
uses so should do its best to survive a full crash (power outage,
vm/OS crash, etc...).

Is there a way to do this using ActiveMQ configuration? Essentially
I'm trying to get a blocking queue and a non-blocking silent-purge
queue, each with different usage limits, in a single broker.

Pretty much all the techniques out there are only for topics. I did
see 'sendFailIfNoSpace' however that applies to overall systemUsage. I
want to ensure that the problems.queue only takes up a fraction of the
system resource. I've tried specifying destinationPolicy/policyEntry
memoryLimit to give the problems queue less memory than the important
queue and it doesn't seem to make a difference (presumably the data is
just being written straight to disk rather than stored in-memory?).
Ideas?

Thanks,

Mike

Mime
View raw message