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 | 7ba97fcc2ccf0c8523f353be4c6e6bbbcae81ee8 (patch) | |
| tree | 8102f69dd91828c2068f7df54561762893134466 /cpp/src | |
| parent | dce43316e7c701d34fd79bf8c8399646dbd37adf (diff) | |
| download | qpid-python-7ba97fcc2ccf0c8523f353be4c6e6bbbcae81ee8.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/qpid@1003052 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src')
| -rw-r--r-- | cpp/src/qpid/agent/ManagementAgentImpl.cpp | 14 | ||||
| -rw-r--r-- | cpp/src/qpid/agent/ManagementAgentImpl.h | 2 |
2 files changed, 10 insertions, 6 deletions
diff --git a/cpp/src/qpid/agent/ManagementAgentImpl.cpp b/cpp/src/qpid/agent/ManagementAgentImpl.cpp index a015bcaba0..b3f1d57a9a 100644 --- a/cpp/src/qpid/agent/ManagementAgentImpl.cpp +++ b/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/cpp/src/qpid/agent/ManagementAgentImpl.h b/cpp/src/qpid/agent/ManagementAgentImpl.h index be90640ec7..59f6c0b99c 100644 --- a/cpp/src/qpid/agent/ManagementAgentImpl.h +++ b/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; |
