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]

Reply via email to