You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ac...@apache.org on 2013/02/07 20:26:20 UTC
svn commit: r1443679 - in /qpid/trunk/qpid/cpp/src/qpid:
broker/QueueSettings.cpp broker/QueueSettings.h broker/SessionAdapter.cpp
ha/BrokerReplicator.cpp ha/ReplicationTest.cpp
Author: aconway
Date: Thu Feb 7 19:26:20 2013
New Revision: 1443679
URL: http://svn.apache.org/r1443679
Log:
QPID-4555: HA Add QueueSettings::declaredExclusive for exclusive queues.
This is set when the queue is created, before calling
ConfigurationObserver::queueCreate, and does not change thereafter.
The existing Queue::owner not set until after ConfigurationObserver::queueCreate
and does change as ownership can be released and acquired.
Modified:
qpid/trunk/qpid/cpp/src/qpid/broker/QueueSettings.cpp
qpid/trunk/qpid/cpp/src/qpid/broker/QueueSettings.h
qpid/trunk/qpid/cpp/src/qpid/broker/SessionAdapter.cpp
qpid/trunk/qpid/cpp/src/qpid/ha/BrokerReplicator.cpp
qpid/trunk/qpid/cpp/src/qpid/ha/ReplicationTest.cpp
Modified: qpid/trunk/qpid/cpp/src/qpid/broker/QueueSettings.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/QueueSettings.cpp?rev=1443679&r1=1443678&r2=1443679&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/QueueSettings.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/QueueSettings.cpp Thu Feb 7 19:26:20 2013
@@ -77,6 +77,7 @@ const QueueSettings::Aliases QueueSettin
QueueSettings::QueueSettings(bool d, bool a) :
durable(d),
autodelete(a),
+ declaredExclusive(false),
priorities(0),
defaultFairshare(0),
shareGroups(false),
Modified: qpid/trunk/qpid/cpp/src/qpid/broker/QueueSettings.h
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/QueueSettings.h?rev=1443679&r1=1443678&r2=1443679&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/QueueSettings.h (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/QueueSettings.h Thu Feb 7 19:26:20 2013
@@ -43,6 +43,7 @@ struct QueueSettings
bool durable;
bool autodelete;
+ bool declaredExclusive;
//basic queue types:
std::string lvqKey;
Modified: qpid/trunk/qpid/cpp/src/qpid/broker/SessionAdapter.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/broker/SessionAdapter.cpp?rev=1443679&r1=1443678&r2=1443679&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/broker/SessionAdapter.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/broker/SessionAdapter.cpp Thu Feb 7 19:26:20 2013
@@ -294,6 +294,7 @@ void SessionAdapter::QueueHandlerImpl::d
} catch (const qpid::types::Exception& e) {
throw InvalidArgumentException(e.what());
}
+ settings.declaredExclusive = exclusive;
std::pair<Queue::shared_ptr, bool> queue_created =
getBroker().createQueue(name, settings,
Modified: qpid/trunk/qpid/cpp/src/qpid/ha/BrokerReplicator.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/ha/BrokerReplicator.cpp?rev=1443679&r1=1443678&r2=1443679&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/ha/BrokerReplicator.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/ha/BrokerReplicator.cpp Thu Feb 7 19:26:20 2013
@@ -600,9 +600,11 @@ void BrokerReplicator::doEventMembersUpd
void BrokerReplicator::doEventSubscribe(Variant::Map& values) {
// Ignore queue replicator subscriptions.
if (QueueReplicator::isReplicatorName(values[DEST].asString())) return;
- QPID_LOG(debug, logPrefix << "Subscribe event: " << values[QNAME]);
boost::shared_ptr<QueueReplicator> qr = findQueueReplicator(values[QNAME]);
- if (qr) qr->setSubscribed();
+ if (qr) {
+ qr->setSubscribed();
+ QPID_LOG(debug, logPrefix << "Subscribe event: " << values[QNAME]);
+ }
}
namespace {
Modified: qpid/trunk/qpid/cpp/src/qpid/ha/ReplicationTest.cpp
URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/cpp/src/qpid/ha/ReplicationTest.cpp?rev=1443679&r1=1443678&r2=1443679&view=diff
==============================================================================
--- qpid/trunk/qpid/cpp/src/qpid/ha/ReplicationTest.cpp (original)
+++ qpid/trunk/qpid/cpp/src/qpid/ha/ReplicationTest.cpp Thu Feb 7 19:26:20 2013
@@ -65,7 +65,7 @@ ReplicateLevel ReplicationTest::getLevel
ReplicateLevel ReplicationTest::useLevel(const broker::Queue& q)
{
- bool ignore = q.isAutoDelete() && q.hasExclusiveOwner() &&
+ bool ignore = q.isAutoDelete() && q.getSettings().declaredExclusive &&
!q.getSettings().autoDeleteDelay;
return ignore ? ReplicationTest(NONE).getLevel(q) : getLevel(q);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org