In the simplest case we should just issue session exceptions when client attempt to do things that would push the broker above a given limit.
Moving target to 1.1 as we don't yet have a good solution for this.
Initial suggested solution is as follows: On startup broker determines the available system memory. The default policy on any queue for which an explicit policy is not set is to not go above a certain percentage of this (else flow to disk or throw exception as usual).
Fixed by r679462.
Fix involves applying a fixed size (but configurable) default policy for queues (--default-queue-policy). Once the total message data on the queue reaches that limit, further publications will be either flushed to disk (if the queue is durable) or failed.
RHTS test MRG_Messaging/qpid_queue_policy_bz452141_bz456667 proves that queue policies (queue max message count and queue byte size) are implemented and tested. (ON_QA->VERIFIED)
An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on therefore solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHBA-2008-0640.html