On 6/15/06, Gerdes, Mike <[EMAIL PROTECTED]> wrote:
I want this feature to make AMQ a bit more stable, to reduce network traffic and prevent flooding and to avoid that a software with errors kills my system.
You can use the prefetch for that... http://incubator.apache.org/activemq/what-is-the-prefetch-limit-for.html to limit how many messages are dispatched to a consumer.
From what I noticed is that AMQ does have some memory problems and that it hits under certain circumstances 100 used memory and crashes then.
Whats the crash? Is this the broker or client?
But thats the smaller reason. The major reason is just for security. In my testing and application I need to have a system that is more or less stable and secure. And DoS and flooding of queues seems to me a big problem.
How about using security so only nodes you trust can publish to your queues?
One thing about the memory problem, I have encountered. With more then one consumer and using queue, AMQ crashes with 100% used memory if I send as fast as possible. This happens with and without async messages. What I noticed is that the usageManagers request more and more memory and at some point don't get it and then block. When a message from a queue is read, its memory is not freed. With only on consumer this haven'T been the case. There has the memory be freed. (I put reference counter System.out.println into the usageManger)
Which version of ActiveMQ are you using? Also are you using persistent queues? (I'm guessing not as that is not memory bound). If you are using 4.0 have you disabled optimizeAck? (see the known issues) http://incubator.apache.org/activemq/activemq-40-release.html -- James ------- http://radio.weblogs.com/0112098/
