diff options
| author | Alan Conway <aconway@apache.org> | 2012-10-31 01:08:41 +0000 |
|---|---|---|
| committer | Alan Conway <aconway@apache.org> | 2012-10-31 01:08:41 +0000 |
| commit | f801cc82dacd8a90134b3a372d72cf9e8fe5833b (patch) | |
| tree | 692f0cee65ebe3ea57a27bffacce7da04958bf82 /cpp/src/qpid/ha/BrokerReplicator.cpp | |
| parent | d3bbffe49b94866b8a3c5e04dd9583a9361aaca9 (diff) | |
| download | qpid-python-f801cc82dacd8a90134b3a372d72cf9e8fe5833b.tar.gz | |
QPID-4401: HA bindings for QMF exchanges not replicated.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1403946 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/ha/BrokerReplicator.cpp')
| -rw-r--r-- | cpp/src/qpid/ha/BrokerReplicator.cpp | 27 |
1 files changed, 3 insertions, 24 deletions
diff --git a/cpp/src/qpid/ha/BrokerReplicator.cpp b/cpp/src/qpid/ha/BrokerReplicator.cpp index cc1aff798e..5769538982 100644 --- a/cpp/src/qpid/ha/BrokerReplicator.cpp +++ b/cpp/src/qpid/ha/BrokerReplicator.cpp @@ -613,14 +613,6 @@ void BrokerReplicator::doResponseQueue(Variant::Map& values) { throw Exception(QPID_MSG("Unexpected queue response: " << values)); if (!queueTracker->response(name)) return; // Response is out-of-date QPID_LOG(debug, logPrefix << "Queue response: " << name); - if (broker.getQueues().find(name)) { // Already exists - if (findQueueReplicator(name)) - return; // Already replicated - else { - QPID_LOG(debug, logPrefix << "Deleting queue to make way for replica: " << name); - broker.deleteQueue(name, userId, remoteHost); - } - } framing::FieldTable args; qpid::amqp_0_10::translate(argsMap, args); boost::shared_ptr<QueueReplicator> qr = replicateQueue( @@ -642,21 +634,11 @@ void BrokerReplicator::doResponseExchange(Variant::Map& values) { throw Exception(QPID_MSG("Unexpected exchange response: " << values)); if (!exchangeTracker->response(name)) return; // Response is out of date. QPID_LOG(debug, logPrefix << "Exchange response: " << name); - if (broker.getExchanges().find(name)) { - if (replicatedExchanges.find(name) != replicatedExchanges.end()) - return; // Already replicated - else { - QPID_LOG(debug, logPrefix << "Deleting exchange to make way for replica: " - << name); - broker.deleteExchange(name, userId, remoteHost); - } - } framing::FieldTable args; qpid::amqp_0_10::translate(argsMap, args); CreateExchangeResult result = createExchange( name, values[TYPE].asString(), values[DURABLE].asBool(), args, getAltExchange(values[ALTEXCHANGE])); - assert(result.second); replicatedExchanges.insert(name); } @@ -778,11 +760,9 @@ boost::shared_ptr<QueueReplicator> BrokerReplicator::replicateQueue( remoteHost); boost::shared_ptr<QueueReplicator> qr; if (!findQueueReplicator(name)) qr = startQueueReplicator(result.first); - if (result.second) { - if (!alternateExchange.empty()) { - alternates.setAlternate( - alternateExchange, boost::bind(&Queue::setAlternateExchange, result.first, _1)); - } + if (result.second && !alternateExchange.empty()) { + alternates.setAlternate( + alternateExchange, boost::bind(&Queue::setAlternateExchange, result.first, _1)); } return qr; } @@ -803,7 +783,6 @@ BrokerReplicator::CreateExchangeResult BrokerReplicator::createExchange( args, userId, remoteHost); - alternates.addExchange(result.first); if (!alternateExchange.empty()) { alternates.setAlternate( |
