RickW wrote:
I have a QPID application that sends messages to several listener
applications. I noticed if there are no listeners running, qpidd's memory
usage grows continually. Running qpidd-tool I see the messages are being
queued indefinitely. So I set the time-to-live DeliveryProperty of the
messages thinking the messages would be deleted after a while. But qpidd
still grows and the messages are not deleted.
To use TTL do I only need to set the message's DeliveryProperty, or is there
more to it? Are there situations where TTL is ignored?
Thanks in advance, RickW
Details:
- qpidc-0.5
- Red Hat Enterprise Linux 5.2
- Receiving messages using local queues
- Aynchronous message sending (I tried synchronous though)
- amq.direct exchange
- max queue size set to UNLIMITED
- REJECT flow control policy
- byte/messageCredit=UNLIMITED
- acquireMode=PRE-ACQUIRE, acceptMode=NONE, completionMode=ON_DELIVERY
- windowMode, auto_ack
The messages get removed based on TTL at two times:
- When a consumer is active, it will delete the message before sending
if expired
- On a timer it will go clean up, queue cleaner interval.
The queue purge interval for TTL can be set by the following broker
configuration (from qpidd --help)
--queue-purge-interval SECONDS (600) Interval between attempts to
purge any expired messages from queues
regards
Carl.
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]