summaryrefslogtreecommitdiff
path: root/qpid/cpp/src
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2012-02-22 18:50:18 +0000
committerAlan Conway <aconway@apache.org>2012-02-22 18:50:18 +0000
commitbc08662c96c86a40e20bc4cc947493e6888a2649 (patch)
tree4c832e9a1be0290f3295b6d31e15adc6404399ad /qpid/cpp/src
parente369bfd7b5f951b45e848731835814e43165402f (diff)
downloadqpid-python-bc08662c96c86a40e20bc4cc947493e6888a2649.tar.gz
QPID-3603: HA logging improvements.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1292445 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/src')
-rw-r--r--qpid/cpp/src/qpid/ha/Backup.cpp2
-rw-r--r--qpid/cpp/src/qpid/ha/BrokerReplicator.cpp9
-rw-r--r--qpid/cpp/src/qpid/ha/HaBroker.cpp3
-rw-r--r--qpid/cpp/src/qpid/ha/HaPlugin.cpp1
-rw-r--r--qpid/cpp/src/qpid/ha/QueueReplicator.cpp5
-rwxr-xr-xqpid/cpp/src/tests/ha_tests.py7
6 files changed, 20 insertions, 7 deletions
diff --git a/qpid/cpp/src/qpid/ha/Backup.cpp b/qpid/cpp/src/qpid/ha/Backup.cpp
index 5acbfb9d5f..3d65e07202 100644
--- a/qpid/cpp/src/qpid/ha/Backup.cpp
+++ b/qpid/cpp/src/qpid/ha/Backup.cpp
@@ -52,7 +52,7 @@ Backup::Backup(broker::Broker& b, const Settings& s) :
void Backup::initialize(const Url& url) {
assert(!url.empty());
- QPID_LOG(notice, "Ha: Backup started: " << url);
+ QPID_LOG(notice, "HA: Backup started: " << url);
string protocol = url[0].protocol.empty() ? "tcp" : url[0].protocol;
// Declare the link
std::pair<Link::shared_ptr, bool> result = broker.getLinks().declare(
diff --git a/qpid/cpp/src/qpid/ha/BrokerReplicator.cpp b/qpid/cpp/src/qpid/ha/BrokerReplicator.cpp
index a8f05c1fe3..75e4ed893d 100644
--- a/qpid/cpp/src/qpid/ha/BrokerReplicator.cpp
+++ b/qpid/cpp/src/qpid/ha/BrokerReplicator.cpp
@@ -266,6 +266,7 @@ void BrokerReplicator::route(Deliverable& msg, const string& /*key*/, const fram
}
void BrokerReplicator::doEventQueueDeclare(Variant::Map& values) {
+ QPID_LOG(debug, "HA: Backup queue declare event " << values);
string name = values[QNAME].asString();
Variant::Map argsMap = asMapVoid(values[ARGS]);
if (values[DISP] == CREATED && replicateLevel(argsMap)) {
@@ -296,6 +297,7 @@ void BrokerReplicator::doEventQueueDeclare(Variant::Map& values) {
}
void BrokerReplicator::doEventQueueDelete(Variant::Map& values) {
+ QPID_LOG(debug, "HA: Backup queue delete event " << values);
// The remote queue has already been deleted so replicator
// sessions may be closed by a "queue deleted" exception.
string name = values[QNAME].asString();
@@ -314,6 +316,7 @@ void BrokerReplicator::doEventQueueDelete(Variant::Map& values) {
}
void BrokerReplicator::doEventExchangeDeclare(Variant::Map& values) {
+ QPID_LOG(debug, "HA: Backup exchange declare event " << values);
Variant::Map argsMap(asMapVoid(values[ARGS]));
if (values[DISP] == CREATED && replicateLevel(argsMap)) {
string name = values[EXNAME].asString();
@@ -338,6 +341,7 @@ void BrokerReplicator::doEventExchangeDeclare(Variant::Map& values) {
}
void BrokerReplicator::doEventExchangeDelete(Variant::Map& values) {
+ QPID_LOG(debug, "HA: Backup exchange delete event " << values);
string name = values[EXNAME].asString();
try {
boost::shared_ptr<Exchange> exchange = broker.getExchanges().find(name);
@@ -352,6 +356,7 @@ void BrokerReplicator::doEventExchangeDelete(Variant::Map& values) {
}
void BrokerReplicator::doEventBind(Variant::Map& values) {
+ QPID_LOG(debug, "HA: Backup bind event " << values);
boost::shared_ptr<Exchange> exchange =
broker.getExchanges().find(values[EXNAME].asString());
boost::shared_ptr<Queue> queue =
@@ -372,6 +377,7 @@ void BrokerReplicator::doEventBind(Variant::Map& values) {
}
void BrokerReplicator::doEventUnbind(Variant::Map& values) {
+ QPID_LOG(debug, "HA: Backup unbind event " << values);
boost::shared_ptr<Exchange> exchange =
broker.getExchanges().find(values[EXNAME].asString());
boost::shared_ptr<Queue> queue =
@@ -392,6 +398,7 @@ void BrokerReplicator::doEventUnbind(Variant::Map& values) {
}
void BrokerReplicator::doResponseQueue(Variant::Map& values) {
+ QPID_LOG(debug, "HA: Backup queue response " << values);
// FIXME aconway 2011-11-22: more flexible ways & defaults to indicate replication
Variant::Map argsMap(asMapVoid(values[ARGUMENTS]));
if (!replicateLevel(argsMap)) return;
@@ -419,6 +426,7 @@ void BrokerReplicator::doResponseQueue(Variant::Map& values) {
}
void BrokerReplicator::doResponseExchange(Variant::Map& values) {
+ QPID_LOG(debug, "HA: Backup exchange response " << values);
Variant::Map argsMap(asMapVoid(values[ARGUMENTS]));
if (!replicateLevel(argsMap)) return;
framing::FieldTable args;
@@ -460,6 +468,7 @@ const std::string QUEUE_REF("queueRef");
} // namespace
void BrokerReplicator::doResponseBind(Variant::Map& values) {
+ QPID_LOG(debug, "HA: Backup bind response " << values);
std::string exName = getRefName(EXCHANGE_REF_PREFIX, values[EXCHANGE_REF]);
std::string qName = getRefName(QUEUE_REF_PREFIX, values[QUEUE_REF]);
boost::shared_ptr<Exchange> exchange = broker.getExchanges().find(exName);
diff --git a/qpid/cpp/src/qpid/ha/HaBroker.cpp b/qpid/cpp/src/qpid/ha/HaBroker.cpp
index 0d3bd51439..18cd578d90 100644
--- a/qpid/cpp/src/qpid/ha/HaBroker.cpp
+++ b/qpid/cpp/src/qpid/ha/HaBroker.cpp
@@ -118,11 +118,12 @@ void HaBroker::updateClientUrl(const sys::Mutex::ScopedLock&) {
mgmtObject->set_clientAddresses(url.str());
knownBrokers.clear();
knownBrokers.push_back(url);
- QPID_LOG(debug, "HA: Setting client known-brokers to: " << url);
+ QPID_LOG(debug, "HA: Setting client URL to: " << url);
}
void HaBroker::setBrokerUrl(const Url& url, const sys::Mutex::ScopedLock& l) {
if (url.empty()) throw Exception("Invalid empty URL for HA broker failover");
+ QPID_LOG(debug, "HA: Setting broker URL to: " << url);
brokerUrl = url;
mgmtObject->set_brokerAddresses(brokerUrl.str());
if (backup.get()) backup->setBrokerUrl(brokerUrl);
diff --git a/qpid/cpp/src/qpid/ha/HaPlugin.cpp b/qpid/cpp/src/qpid/ha/HaPlugin.cpp
index fc9e48411d..e9b3d4d311 100644
--- a/qpid/cpp/src/qpid/ha/HaPlugin.cpp
+++ b/qpid/cpp/src/qpid/ha/HaPlugin.cpp
@@ -56,6 +56,7 @@ struct HaPlugin : public Plugin {
void initialize(Plugin::Target& target) {
broker::Broker* broker = dynamic_cast<broker::Broker*>(&target);
if (broker && settings.enabled) {
+ QPID_LOG(notice, "HA: Enabled");
haBroker.reset(new ha::HaBroker(*broker, settings));
} else
QPID_LOG(notice, "HA: Disabled");
diff --git a/qpid/cpp/src/qpid/ha/QueueReplicator.cpp b/qpid/cpp/src/qpid/ha/QueueReplicator.cpp
index 98b431fc10..7351a8d74d 100644
--- a/qpid/cpp/src/qpid/ha/QueueReplicator.cpp
+++ b/qpid/cpp/src/qpid/ha/QueueReplicator.cpp
@@ -31,7 +31,6 @@
#include "qpid/framing/FieldTable.h"
#include "qpid/log/Statement.h"
#include <boost/shared_ptr.hpp>
-#include <sstream>
namespace {
const std::string QPID_REPLICATOR_("qpid.replicator-");
@@ -54,9 +53,7 @@ std::string QueueReplicator::replicatorName(const std::string& queueName) {
QueueReplicator::QueueReplicator(boost::shared_ptr<Queue> q, boost::shared_ptr<Link> l)
: Exchange(replicatorName(q->getName()), 0, q->getBroker()), queue(q), link(l)
{
- std::stringstream ss;
- ss << "HA: Backup " << queue->getName() << ": ";
- logPrefix = ss.str();
+ logPrefix = "HA: Backup " + queue->getName() + ": ";
QPID_LOG(info, logPrefix << "Created, settings: " << q->getSettings());
}
diff --git a/qpid/cpp/src/tests/ha_tests.py b/qpid/cpp/src/tests/ha_tests.py
index 982a405ada..dd3ed3847c 100755
--- a/qpid/cpp/src/tests/ha_tests.py
+++ b/qpid/cpp/src/tests/ha_tests.py
@@ -49,6 +49,10 @@ class HaBroker(Broker):
assert os.system(
"qpid-ha-tool --broker-addresses=%s %s"%(url, self.host_port())) == 0
+def set_broker_urls(brokers):
+ url = ",".join([b.host_port() for b in brokers])
+ for b in brokers: b.set_broker_url(url)
+
class ShortTests(BrokerTest):
"""Short HA functionality tests."""
@@ -59,7 +63,7 @@ class ShortTests(BrokerTest):
session.sender(address)
return True
except NotFound: return False
- assert retry(check), "Timed out waiting for %s"%(address)
+ assert retry(check), "Timed out waiting for address %s"%(address)
# Wait for address to become valid on a backup broker.
def wait_backup(self, backup, address):
@@ -342,6 +346,7 @@ class ShortTests(BrokerTest):
s = session.sender("priority-queue; {create:always, node:{x-declare:{arguments:{'qpid.priorities':10, 'qpid.replicate':messages}}}}")
priorities = [8,9,5,1,2,2,3,4,9,7,8,9,9,2]
for p in priorities: s.send(Message(priority=p))
+ # Can't use browse_backup as browser sees messages in delivery order not priority.
self.wait_backup(backup, "priority-queue")
r = self.connect_admin(backup).session().receiver("priority-queue")
received = [r.fetch().priority for i in priorities]