diff options
author | Kenneth Anthony Giusti <kgiusti@apache.org> | 2010-09-30 13:06:06 +0000 |
---|---|---|
committer | Kenneth Anthony Giusti <kgiusti@apache.org> | 2010-09-30 13:06:06 +0000 |
commit | 82688abb12c80190f208a7455a2e306329f4bc92 (patch) | |
tree | db74daa65fd1167401f1187d6eea027d3fe0eb8d | |
parent | f8156eefde27d082fc267dfcce9e061b75611508 (diff) | |
download | qpid-python-82688abb12c80190f208a7455a2e306329f4bc92.tar.gz |
QPID-2888: qmf v2 agent will republish all data on broker reconnect.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1003052 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r-- | qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp | 14 | ||||
-rw-r--r-- | qpid/cpp/src/qpid/agent/ManagementAgentImpl.h | 2 |
2 files changed, 10 insertions, 6 deletions
diff --git a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp index a015bcaba0..b3f1d57a9a 100644 --- a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp +++ b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.cpp @@ -104,7 +104,7 @@ ManagementAgentImpl::ManagementAgentImpl() : initialized(false), connected(false), useMapMsg(false), lastFailure("never connected"), topicExchange("qmf.default.topic"), directExchange("qmf.default.direct"), schemaTimestamp(Duration(EPOCH, now())), - clientWasAdded(true), requestedBrokerBank(0), requestedAgentBank(0), + publishAllData(true), requestedBrokerBank(0), requestedAgentBank(0), assignedBrokerBank(0), assignedAgentBank(0), bootSequence(0), maxV2ReplyObjs(10), // KAG todo: make this a tuneable parameter connThreadBody(*this), connThread(connThreadBody), @@ -399,6 +399,10 @@ void ManagementAgentImpl::setSignalCallback(Notifyable& _notifyable) void ManagementAgentImpl::startProtocol() { sendHeartbeat(); + { + sys::Mutex::ScopedLock lock(agentLock); + publishAllData = true; + } } void ManagementAgentImpl::storeData(bool requested) @@ -550,7 +554,7 @@ void ManagementAgentImpl::handleSchemaRequest(Buffer& inBuffer, uint32_t sequenc void ManagementAgentImpl::handleConsoleAddedIndication() { sys::Mutex::ScopedLock lock(agentLock); - clientWasAdded = true; + publishAllData = true; QPID_LOG(trace, "RCVD ConsoleAddedInd"); } @@ -829,7 +833,7 @@ void ManagementAgentImpl::handleLocateRequest(const string&, const string& cid, { sys::Mutex::ScopedLock lock(agentLock); - clientWasAdded = true; + publishAllData = true; } } @@ -1047,12 +1051,12 @@ void ManagementAgentImpl::periodicProcessing() iter++) { ManagementObject* object = iter->second.get(); object->setFlags(0); - if (clientWasAdded) { + if (publishAllData) { object->setForcePublish(true); } } - clientWasAdded = false; + publishAllData = false; // // Process the entire object map. diff --git a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h index be90640ec7..59f6c0b99c 100644 --- a/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h +++ b/qpid/cpp/src/qpid/agent/ManagementAgentImpl.h @@ -177,7 +177,7 @@ class ManagementAgentImpl : public ManagementAgent, public client::MessageListen std::string directExchange; qpid::sys::Duration schemaTimestamp; - bool clientWasAdded; + bool publishAllData; uint32_t requestedBrokerBank; uint32_t requestedAgentBank; uint32_t assignedBrokerBank; |