diff options
| author | Alan Conway <aconway@apache.org> | 2013-08-01 20:27:26 +0000 |
|---|---|---|
| committer | Alan Conway <aconway@apache.org> | 2013-08-01 20:27:26 +0000 |
| commit | e6598e9f95d55b80f96dbcb1e12bc1fc38c66af1 (patch) | |
| tree | 7179cb6fa40a59d1390f295a613de64cc242814a /cpp/src/qpid/ha/RemoteBackup.cpp | |
| parent | 0ffcd71ac9c9f3742aae6e251eafe031068bda31 (diff) | |
| download | qpid-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.cpp | 3 |
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()); |
