Hi,

I have an application with a limited memory size.  I run with persistence
on.  There are times when a long running consumer transaction will cause all
memory to be consumed in the broker.  This eventually leads to Producer
blockage (or error -- I've sometimes configured it that way).  Since the
producer blocks the consumer transaction can never complete because it does
not get all the messages it needs. 

I am using ActiveMQ 5.3.2 with the default PersistenceAdapter:
AMQPersistenceAdapter.  Is there anyway I can change this behavior without
having to increase the memory available to the broker?  Ideally the state of
the ongoing transaction would spill to storage when memory is exhausted,
allowing the transaction to continue.

Using a java profiler, I've noticed that the consumer holds a list of all
unacknowledged yet delivered messages in memory.  I cannot predict the size
of the messages or the number of messages in a transaction.

Any suggestions would be appreciated.

Thanks,
Martin

--
View this message in context: 
http://activemq.2283324.n4.nabble.com/do-open-transactions-consume-memory-tp3413174p3413174.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to