diff options
-rw-r--r-- | cpp/src/qpid/ha/HaPlugin.cpp | 14 | ||||
-rw-r--r-- | cpp/src/qpid/ha/QueueReplicator.cpp | 7 | ||||
-rw-r--r-- | cpp/src/qpid/ha/types.cpp | 3 | ||||
-rw-r--r-- | cpp/src/qpid/ha/types.h | 1 |
4 files changed, 15 insertions, 10 deletions
diff --git a/cpp/src/qpid/ha/HaPlugin.cpp b/cpp/src/qpid/ha/HaPlugin.cpp index 9a06a227a5..3d77a4cbd1 100644 --- a/cpp/src/qpid/ha/HaPlugin.cpp +++ b/cpp/src/qpid/ha/HaPlugin.cpp @@ -69,10 +69,16 @@ struct HaPlugin : public Plugin { void earlyInitialize(Plugin::Target& target) { broker::Broker* broker = dynamic_cast<broker::Broker*>(&target); if (broker) { - // Must create the HaBroker in earlyInitialize so it can set up its - // connection observer before clients start connecting. - haBroker.reset(new ha::HaBroker(*broker, settings)); - broker->addFinalizer(boost::bind(&HaPlugin::finalize, this)); + if (!broker->getManagementAgent()) { + QPID_LOG(info, "HA plugin disabled because management is disabled"); + if (settings.cluster) + throw Exception("Cannot start HA: management is disabled"); + } else { + // Must create the HaBroker in earlyInitialize so it can set up its + // connection observer before clients start connecting. + haBroker.reset(new ha::HaBroker(*broker, settings)); + broker->addFinalizer(boost::bind(&HaPlugin::finalize, this)); + } } } diff --git a/cpp/src/qpid/ha/QueueReplicator.cpp b/cpp/src/qpid/ha/QueueReplicator.cpp index 1f14ce4669..6b270b41d3 100644 --- a/cpp/src/qpid/ha/QueueReplicator.cpp +++ b/cpp/src/qpid/ha/QueueReplicator.cpp @@ -40,6 +40,7 @@ namespace { const std::string QPID_REPLICATOR_("qpid.replicator-"); const std::string TYPE_NAME("qpid.queue-replicator"); +const std::string QPID_HA("qpid.ha-"); } namespace qpid { @@ -49,8 +50,8 @@ using namespace framing; using namespace std; using sys::Mutex; -const std::string QueueReplicator::DEQUEUE_EVENT_KEY(QPID_HA_PREFIX+"dequeue"); -const std::string QueueReplicator::POSITION_EVENT_KEY(QPID_HA_PREFIX+"position"); +const std::string QueueReplicator::DEQUEUE_EVENT_KEY(QPID_HA+"dequeue"); +const std::string QueueReplicator::POSITION_EVENT_KEY(QPID_HA+"position"); const std::string QueueReplicator::QPID_SYNC_FREQUENCY("qpid.sync_frequency"); std::string QueueReplicator::replicatorName(const std::string& queueName) { @@ -62,7 +63,7 @@ bool QueueReplicator::isReplicatorName(const std::string& name) { } bool QueueReplicator::isEventKey(const std::string key) { - const std::string& prefix = QPID_HA_PREFIX; + const std::string& prefix = QPID_HA; bool ret = key.size() > prefix.size() && key.compare(0, prefix.size(), prefix) == 0; return ret; } diff --git a/cpp/src/qpid/ha/types.cpp b/cpp/src/qpid/ha/types.cpp index 57712762ab..4010ec03a8 100644 --- a/cpp/src/qpid/ha/types.cpp +++ b/cpp/src/qpid/ha/types.cpp @@ -33,8 +33,7 @@ namespace ha { using namespace std; const string QPID_REPLICATE("qpid.replicate"); -const string QPID_HA_PREFIX("qpid.ha-"); -const string QPID_HA_UUID(QPID_HA_PREFIX+"uuid"); +const string QPID_HA_UUID("qpid.ha-uuid"); string EnumBase::str() const { assert(value < count); diff --git a/cpp/src/qpid/ha/types.h b/cpp/src/qpid/ha/types.h index d1afbf1190..f8c48afc5a 100644 --- a/cpp/src/qpid/ha/types.h +++ b/cpp/src/qpid/ha/types.h @@ -99,7 +99,6 @@ inline bool isBackup(BrokerStatus s) { return !isPrimary(s); } // String constants. extern const std::string QPID_REPLICATE; -extern const std::string QPID_HA_PREFIX; extern const std::string QPID_HA_UUID; /** Define IdSet type, not a typedef so we can overload operator << */ |