summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/Bridge.cpp
diff options
context:
space:
mode:
authorTed Ross <tross@apache.org>2008-10-31 04:15:52 +0000
committerTed Ross <tross@apache.org>2008-10-31 04:15:52 +0000
commit35a9035b749126f5de606c4a76299208fb6748ff (patch)
tree1dbc3220d6eca8bb262a5508d85df79ff65da4ee /cpp/src/qpid/broker/Bridge.cpp
parentea0d105aac7f505f67878c56e3230c3b35dfd8ae (diff)
downloadqpid-python-35a9035b749126f5de606c4a76299208fb6748ff.tar.gz
Federation bug-fixes:
1) Locking was added to protect the exchange's vector of bridges. 2) Bridges are now properly torn down when a link is lost. 3) Auto-tracing was improperly assigning tags to federation queues. Also, the federation queue name now uses the broker-id for the destination broker. This makes it easier to determine which queues go to which brokers. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@709342 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/broker/Bridge.cpp')
-rw-r--r--cpp/src/qpid/broker/Bridge.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/cpp/src/qpid/broker/Bridge.cpp b/cpp/src/qpid/broker/Bridge.cpp
index cc76cf7f21..8104907402 100644
--- a/cpp/src/qpid/broker/Bridge.cpp
+++ b/cpp/src/qpid/broker/Bridge.cpp
@@ -59,7 +59,7 @@ Bridge::Bridge(Link* _link, framing::ChannelId _id, CancellationListener l,
link(_link), id(_id), args(_args), mgmtObject(0),
listener(l), name(Uuid(true).str()), queueName("bridge_queue_"), persistenceId(0)
{
- queueName += name;
+ queueName += link->getBroker()->getFederationTag();
ManagementAgent* agent = ManagementAgent::Singleton::getInstance();
if (agent != 0) {
mgmtObject = new _qmf::Bridge
@@ -109,17 +109,17 @@ void Bridge::create(ConnectionState& c)
if (args.i_tag.size()) {
queueSettings.setString("qpid.trace.id", args.i_tag);
} else {
- const string& localTag = link->getBroker()->getFederationTag();
- if (localTag.size())
- queueSettings.setString("qpid.trace.id", localTag);
+ const string& peerTag = connState->getFederationPeerTag();
+ if (peerTag.size())
+ queueSettings.setString("qpid.trace.id", peerTag);
}
if (args.i_excludes.size()) {
queueSettings.setString("qpid.trace.exclude", args.i_excludes);
} else {
- const string& peerTag = connState->getFederationPeerTag();
- if (peerTag.size())
- queueSettings.setString("qpid.trace.exclude", peerTag);
+ const string& localTag = link->getBroker()->getFederationTag();
+ if (localTag.size())
+ queueSettings.setString("qpid.trace.exclude", localTag);
}
bool durable = false;//should this be an arg, or would be use srcIsQueue for durable queues?