summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/ha/RemoteBackup.cpp
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2013-08-01 20:27:26 +0000
committerAlan Conway <aconway@apache.org>2013-08-01 20:27:26 +0000
commite6598e9f95d55b80f96dbcb1e12bc1fc38c66af1 (patch)
tree7179cb6fa40a59d1390f295a613de64cc242814a /cpp/src/qpid/ha/RemoteBackup.cpp
parent0ffcd71ac9c9f3742aae6e251eafe031068bda31 (diff)
downloadqpid-python-e6598e9f95d55b80f96dbcb1e12bc1fc38c66af1.tar.gz
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
Diffstat (limited to 'cpp/src/qpid/ha/RemoteBackup.cpp')
-rw-r--r--cpp/src/qpid/ha/RemoteBackup.cpp3
1 files changed, 3 insertions, 0 deletions
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());