summaryrefslogtreecommitdiff
path: root/qpid/cpp/src/qpid/ha/Membership.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/cpp/src/qpid/ha/Membership.cpp')
-rw-r--r--qpid/cpp/src/qpid/ha/Membership.cpp25
1 files changed, 16 insertions, 9 deletions
diff --git a/qpid/cpp/src/qpid/ha/Membership.cpp b/qpid/cpp/src/qpid/ha/Membership.cpp
index fdb47014d9..92a0b7db70 100644
--- a/qpid/cpp/src/qpid/ha/Membership.cpp
+++ b/qpid/cpp/src/qpid/ha/Membership.cpp
@@ -43,9 +43,14 @@ Membership::Membership(const BrokerInfo& info, HaBroker& b)
: haBroker(b), self(info.getSystemId())
{
brokers[self] = info;
+ setPrefix();
oldStatus = info.getStatus();
}
+void Membership::setPrefix() {
+ haBroker.logPrefix = Msg() << shortStr(brokers[self].getSystemId())
+ << "(" << printable(brokers[self].getStatus()) << ") ";
+}
void Membership::clear() {
Mutex::ScopedLock l(lock);
BrokerInfo me = brokers[self];
@@ -57,7 +62,7 @@ void Membership::add(const BrokerInfo& b) {
Mutex::ScopedLock l(lock);
assert(b.getSystemId() != self);
brokers[b.getSystemId()] = b;
- update(l);
+ update(true, l);
}
@@ -67,7 +72,7 @@ void Membership::remove(const types::Uuid& id) {
BrokerInfo::Map::iterator i = brokers.find(id);
if (i != brokers.end()) {
brokers.erase(i);
- update(l);
+ update(true, l);
}
}
@@ -83,7 +88,7 @@ void Membership::assign(const types::Variant::List& list) {
BrokerInfo b(i->asMap());
brokers[b.getSystemId()] = b;
}
- update(l);
+ update(true, l);
}
types::Variant::List Membership::asList() const {
@@ -144,8 +149,7 @@ bool checkTransition(BrokerStatus from, BrokerStatus to) {
}
} // namespace
-void Membership::update(Mutex::ScopedLock& l) {
- QPID_LOG(info, "Membership: " << brokers);
+void Membership::update(bool log, Mutex::ScopedLock& l) {
// Update managment and send update event.
BrokerStatus newStatus = getStatus(l);
Variant::List brokerList = asList(l);
@@ -171,27 +175,30 @@ void Membership::update(Mutex::ScopedLock& l) {
// Check status transitions
if (oldStatus != newStatus) {
- QPID_LOG(info, "Status change: "
+ QPID_LOG(info, haBroker.logPrefix << "Status change: "
<< printable(oldStatus) << " -> " << printable(newStatus));
if (!checkTransition(oldStatus, newStatus)) {
haBroker.shutdown(QPID_MSG("Illegal state transition: " << printable(oldStatus)
<< " -> " << printable(newStatus)));
}
oldStatus = newStatus;
+ setPrefix();
+ if (newStatus == READY) QPID_LOG(notice, haBroker.logPrefix << "Backup is ready");
}
+ if (log) QPID_LOG(info, haBroker.logPrefix << "Membership update: " << brokers);
}
void Membership::setMgmtObject(boost::shared_ptr<_qmf::HaBroker> mo) {
Mutex::ScopedLock l(lock);
mgmtObject = mo;
- update(l);
+ update(false, l);
}
void Membership::setStatus(BrokerStatus newStatus) {
Mutex::ScopedLock l(lock);
brokers[self].setStatus(newStatus);
- update(l);
+ update(false, l);
}
BrokerStatus Membership::getStatus() const {
@@ -215,7 +222,7 @@ BrokerInfo Membership::getSelf() const {
void Membership::setSelfAddress(const Address& a) {
Mutex::ScopedLock l(lock);
brokers[self].setAddress(a);
- update(l);
+ update(false, l);
}
}} // namespace qpid::ha