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/

Reply via email to