From e6598e9f95d55b80f96dbcb1e12bc1fc38c66af1 Mon Sep 17 00:00:00 2001 From: Alan Conway Date: Thu, 1 Aug 2013 20:27:26 +0000 Subject: QPID-4327: HA TX transactions: basic replication. On primary a PrimaryTxObserver observes a transaction's TxBuffer and generates transaction events on a tx-replication-queue. On the backup a TxReplicator receives the events and constructs a TxBuffer equivalent to the one in the primary. Unfinished: - Primary does not wait for backups to prepare() before committing. - All connected backups are assumed to be in the transaction, there are race conditions around brokers joining/leavinv where this assumption is invalid. - Need more tests. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1509423 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/src/qpid/ha/RemoteBackup.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'cpp/src/qpid/ha/RemoteBackup.cpp') diff --git a/cpp/src/qpid/ha/RemoteBackup.cpp b/cpp/src/qpid/ha/RemoteBackup.cpp index e55d415972..776a584bc8 100644 --- a/cpp/src/qpid/ha/RemoteBackup.cpp +++ b/cpp/src/qpid/ha/RemoteBackup.cpp @@ -20,6 +20,7 @@ */ #include "RemoteBackup.h" #include "QueueGuard.h" +#include "TxReplicator.h" #include "qpid/broker/Broker.h" #include "qpid/broker/Connection.h" #include "qpid/broker/Queue.h" @@ -65,6 +66,8 @@ bool RemoteBackup::isReady() { } void RemoteBackup::catchupQueue(const QueuePtr& q, bool createGuard) { + // Ignore transaction queues for purposes of catch-up calculation + if (TxReplicator::isTxQueue(q->getName())) return; if (replicationTest.getLevel(*q) == ALL) { QPID_LOG(debug, logPrefix << "Catch-up queue" << (createGuard ? " and guard" : "") << ": " << q->getName()); -- cgit v1.2.1