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.
The JDBCPersistenceAdapter is not performant enough to suite my needs. Are there other persistence adapters that would help?