On 10/23/06, Dave cawthorn <[EMAIL PROTECTED]> wrote:

HI,


Do non persistent messages with a TTL ever get removed out of the brokers
message store?

Non persistent messages shouldn't be getting written to the message
store? Or do you mean the RAM buffer?


 I wrote a test that sends a non persistent message with a TTL
of 1ms and then tries to consume this message. What I have noticed is that
every time I run this test the broker tries to redeliver the previously
expired message as well as the newly expired message but the
ActiveMQMessageConsumer rejects it and outputs multiple "Received expired
message:" debug log record. I waited for an hour to see if the thread that
deletes messages out of the persistent store cleaned up these messages as
well but it doesn't seem to.

I'm using jms for heartbeating clients and I want to use the TTL
functionality to remove stale heartbeat requests but if the they are going
to cause a memory leak in the broker i won't be able to do this.

It could be we need to me more aggressive in evicting timed out
messages from RAM. We may wanna add some background thread to chase
down expired messages and remove them eagerly

--

James
-------
http://radio.weblogs.com/0112098/

Reply via email to