summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2009-02-05 15:06:09 +0000
committerAlan Conway <aconway@apache.org>2009-02-05 15:06:09 +0000
commitde6c25582302158cb1fcd742fc557529476e8bef (patch)
tree5347b5861f58e61f231734ccbaf935d40f776d8a
parent1d2f6837ad4e5cff8b12ee637acdbbcb79450b77 (diff)
downloadqpid-python-de6c25582302158cb1fcd742fc557529476e8bef.tar.gz
QPID-1618 from Mick Goulish: brokers joining cluster store persistent messages that have been sent but not acknowledged.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@741123 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--qpid/cpp/src/qpid/cluster/Connection.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/qpid/cpp/src/qpid/cluster/Connection.cpp b/qpid/cpp/src/qpid/cluster/Connection.cpp
index 2a831ae435..9ea79fa2b6 100644
--- a/qpid/cpp/src/qpid/cluster/Connection.cpp
+++ b/qpid/cpp/src/qpid/cluster/Connection.cpp
@@ -319,6 +319,11 @@ void Connection::deliveryRecord(const string& qname,
if (completed) dr.complete();
if (ended) dr.setEnded(); // Exsitance of message
semanticState().record(dr); // Part of the session's unacked list.
+
+ // If the message was unacked, the newbie broker must place
+ // it in its messageStore.
+ if ( m.payload && m.payload->isPersistent() && !completed && !ended && !accepted && !cancelled )
+ queue->enqueue ( 0, m.payload );
}
void Connection::queuePosition(const string& qname, const SequenceNumber& position) {