diff options
author | Kim van der Riet <kpvdr@apache.org> | 2009-09-28 15:45:03 +0000 |
---|---|---|
committer | Kim van der Riet <kpvdr@apache.org> | 2009-09-28 15:45:03 +0000 |
commit | 49376423b9d8d2637e637c858718aa4fb2d25d1c (patch) | |
tree | afe7ebf45ae911fc5d65f61b4123f9c0e28b7e75 /cpp/src/qpid/broker/Exchange.cpp | |
parent | e330417937f21c7d3012975055bd09c2c7b8e28a (diff) | |
download | qpid-python-49376423b9d8d2637e637c858718aa4fb2d25d1c.tar.gz |
Transient flow-to-disk messages switched to store from BDB. Only single-queue transient messages are handled at this point, multi-queue bindings are blocked under all circumstances to prevent routing order dependencies from making the outcome inconsistent. BZ525813 - "Move Flow to disk from BDB to journal"
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@819600 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker/Exchange.cpp')
-rw-r--r-- | cpp/src/qpid/broker/Exchange.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/cpp/src/qpid/broker/Exchange.cpp b/cpp/src/qpid/broker/Exchange.cpp index 9852f84f5b..757127eef2 100644 --- a/cpp/src/qpid/broker/Exchange.cpp +++ b/cpp/src/qpid/broker/Exchange.cpp @@ -81,6 +81,10 @@ void Exchange::doRoute(Deliverable& msg, ConstBindingList b) int count = 0; if (b.get()) { + // Block the content release if the message is transient AND there is more than one binding + if (!msg.getMessage().isPersistent() && b->size() > 1) + msg.getMessage().blockContentRelease(); + for(std::vector<Binding::shared_ptr>::const_iterator i = b->begin(); i != b->end(); i++, count++) { msg.deliverTo((*i)->queue); if ((*i)->mgmtBinding != 0) |