summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/Exchange.cpp
Commit message (Collapse)AuthorAgeFilesLines
* QPID-5498: restore expiration on paged messagesGordon Sim2014-01-211-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1560126 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5384: special asserting logic for autodeleteGordon Sim2013-12-031-0/+4
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1547496 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5301: support autodeleted exchangesGordon Sim2013-11-121-6/+77
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1541058 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5199: take 0-10 header segment into account for message sizeGordon Sim2013-10-031-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1528852 13f79535-47bb-0310-9956-ffa450edef68
* QPID-5107: Trace queue&session deletion statistics show zero values for some ↵Pavel Moravec2013-09-061-0/+1
| | | | | | counters everytime git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1520579 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4950: ensure exchange stats are updated with correct content size for ↵Gordon Sim2013-06-261-1/+1
| | | | | | messages git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1497024 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4717 - Added missing call to statisticsUpdated for Exchanges.Ted Ross2013-04-051-0/+2
| | | | | | | Related to QPID-3875. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1465068 13f79535-47bb-0310-9956-ffa450edef68
* Bug 886656 - HA backup broker does not properly increment the alternate ↵Alan Conway2012-12-201-0/+1
| | | | | | | | exchange user count Set alternate exchange in-use counters correctly on backup brokers. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1424617 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4514: Remove obsolete cluster code: Broker, Connection, Link.Alan Conway2012-12-191-2/+0
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1424125 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4449 - Reverted much of the original change and re-implemented the fix ↵Ted Ross2012-11-301-7/+7
| | | | | | | | | | in a simpler way. The build-define _IN_QPID_BROKER is now used for modules built in the broker. The shared-pointer changes are conditionally compiled only for in-broker cases. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1415796 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4449 - Fixed the API in qpid::management::Manageable to remain backward ↵Ted Ross2012-11-201-7/+7
| | | | | | compatible. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1411761 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4428: HA add UUID tag to avoid using an out of date queue/exchange.Alan Conway2012-11-141-0/+5
| | | | | | | | | | | | | | | | | Imagine a cluster with primary A and backups B and C. A queue Q is created on A and replicated to B, C. Now A dies and B takes over as primary. Before C can connect to B, a client destroys Q and creates a new queue with the same name. When B connects it sees Q and incorrectly assumes it is the same Q that it has already replicated. Now C has an inconsistent replica of Q. The fix is to tag queues/exchanges with a UUID so a backup can tell if a queue is not the same as the one it has already replicated, even if the names are the same. This all also applies to exchanges. - Minor imrovements to printing UUIDs in a FieldTable. - Fix comparison of void Variants, added operator != git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1409241 13f79535-47bb-0310-9956-ffa450edef68
* MQPID-4286: QMF queries for HA replication take too long to process (Jason ↵Alan Conway2012-10-151-17/+17
| | | | | | | | | | Dillaman) Rework ManagementAgent locks, get rid of shared buffers that were points of contention. Minor log message improvements in ha code. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1398530 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4178: broker refactoringGordon Sim2012-08-101-13/+8
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1371676 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: fix some defects found by Coverity static analysis scan of C++ codeKen Giusti2012-05-251-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1342742 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4005: Eliminate "using" especially "using namespace" from header fileAndrew Stitcher2012-05-161-0/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1339403 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3915: Add missing newlinesJustin Ross2012-03-261-0/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1305371 13f79535-47bb-0310-9956-ffa450edef68
* NO-JIRA: Added newlines to the end of some filesAndrew Stitcher2012-03-231-1/+1
| | | | | | | - Accidentally missed from previous namespace checkin and causes compile warnings. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1304467 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2082: Put all of the C++ code in the source tree into a namespaceAndrew Stitcher2012-03-201-1/+5
| | | | | | - This change moves the remaining non-example code in a namespace git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1302988 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3883: Using application headers in messages causes a very large slowdownAndrew Stitcher2012-03-051-3/+3
| | | | | | | | | | Change Exchange route interface not to require a fieldtable - Exchanges that actually use the fieldtable for routing need to extract it directly from the message themselves. This avoids the need to extract the fieldtable from the message unnecessarily. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1297183 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3875: fix indentationKen Giusti2012-03-021-13/+13
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1296449 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3875: allow direct access to per-thread statisticsKen Giusti2012-03-021-11/+14
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1296448 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3824 - Additional queue statistics, posix memory statistics, and ↵Ted Ross2012-02-091-2/+8
| | | | | | broker-scope statistics git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1242526 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3603: Fix spurious "exchange not found" error and debug messages.Alan Conway2012-01-181-6/+4
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1233085 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3304: Patch from Gordon Sim plus tests which detect the condition being ↵Kim van der Riet2011-07-191-2/+2
| | | | | | solved. Added a make check-long target to the Makefile in the cpp dir to make it easier to run the long tests. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1148503 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3217: Exchanges with IVE option cause cluster inconsistencies in updateesAlan Conway2011-04-191-1/+5
| | | | | | | Since this option is rarely used, the short term fix is to disallow IVE in a cluster. This is not a regression since it didn't work anyway. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1095209 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3215: cached exchange reference can cause cluster inconsistencies if ↵Alan Conway2011-04-191-1/+1
| | | | | | | | | exchange is deleted/recreated (2) Previous commit only updated one of the two Exchange constructors, this commit updates the other. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1095201 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3215: cached exchange reference can cause cluster inconsistencies if ↵Alan Conway2011-04-191-1/+1
| | | | | | | | | | | | | | | | | exchange is deleted/recreated SemanticState::route() uses a simple cache variable to avoid looking up the exchange for every message. However if the exchange in question is deleted, even if then recreated, this can cause inconsistencies in a cluster. Even in a stand-alone broker messages can be routed by a deleted exchange because of the cache. Fix is to mark the exchange deleted and check the status when using the cached exchange. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1095144 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3208: Exchanges make best effort to route messages if there is an error.Alan Conway2011-04-181-7/+53
| | | | | | | | | | | | | | | Previously if multiple queues were bound to the same routing key, then a failure to deliver to one of the queues (e.g. policy limit error) could prevent delivery on some of the other queues. With this commit the exchange delivers to every queue that did not have an error before raising an error. Note: this was originally committed as r1092765, but it caused test failures was reverted as r1092804. The original commit did not create exceptions of the correct type. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1094734 13f79535-47bb-0310-9956-ffa450edef68
* Revert "QPID-3208: Exchanges make best effort to route messages if there is ↵Alan Conway2011-04-151-56/+3
| | | | | | | | an error." This reverts commit r1092765 which introduced test failures in make check. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1092804 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3208: Exchanges make best effort to route messages if there is an error.Alan Conway2011-04-151-3/+56
| | | | | | | | | | | Previously if multiple queues were bound to the same routing key, then a failure to deliver to one of the queues (e.g. policy limit error) could prevent delivery on some of the other queues. With this commit the exchange delivers to every queue that did not have an error before raising an error. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1092765 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3107: If queue's alternate-exchange can't route message, try that ↵Gordon Sim2011-03-031-0/+9
| | | | | | exchange's alternate-exchange git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1076604 13f79535-47bb-0310-9956-ffa450edef68
* Revert experimental cluster code, too close to 0.8 release.Alan Conway2010-10-271-15/+1
| | | | | | | | | Reverts revisions: r1023966 "Introduce broker::Cluster interface." r1024275 "Fix compile error: outline set/getCluster fucntions on Broker." r1027210 "New cluster: core framework and initial implementation of enqueue logic." git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1028055 13f79535-47bb-0310-9956-ffa450edef68
* Adds support for federation in the XML exchange.Jonathan Robie2010-10-201-13/+5
| | | | | | | | | Resolves QPID-2348 for the XML Exchange. Also made some changes to the file structure for fedop constants. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1025780 13f79535-47bb-0310-9956-ffa450edef68
* Introduce broker::Cluster interface.Alan Conway2010-10-181-1/+15
| | | | | | | | | See cpp/src/qpid/cluster/new-cluster-design.txt and new-cluster-plan.txt. qpid/cpp/src/tests/BrokerClusterCalls.cpp is a unit test that verifies the broker makes the expected calls on broker::Cluster in various situations. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1023966 13f79535-47bb-0310-9956-ffa450edef68
* Code cleanup in broker directory.Alan Conway2010-10-141-0/+1
| | | | | | | | - Removed un-necessary #includes for broker/Queue.h - Removed "using std::string" in header files. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1022679 13f79535-47bb-0310-9956-ffa450edef68
* Code cleanup Ted Ross2010-04-231-28/+14
| | | | | | | | | | - Removed IdAllocator (it's no longer needed) - Cleaned up the calls to ManagementAgent::addObject to handle durable objects - Removed the deferred call to addObject for durable objects - Removed unneeded calls to self._checkClosed() in qmf.console.Agent git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@937516 13f79535-47bb-0310-9956-ffa450edef68
* Fix for QPID-2470 - Broker does not honour flow-to-disk policy on recoveryKim van der Riet2010-04-131-1/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@933711 13f79535-47bb-0310-9956-ffa450edef68
* Merged the changes from the qmf-devel0.7a branch back to the trunk.Ted Ross2010-03-311-2/+2
| | | | | | | | | | | | | | | | | This is a checkpoint along the QMFv2 development path. This update introduces portions of QMFv2 into the code: - The C++ agent (qpid/agent) uses QMFv2 for data and method transfer o The APIs no longer use qpid::framing::* o Consequently, boost is no longer referenced from the API headers. o Agents and Objects are now referenced by strings, not numbers. o Schema transfer still uses the QMFv1 format. - The broker-resident agent can use QMFv1 or QMFv2 based on the command line options. It defaults to QMFv1 for compatibility. - The pure-python QMF console (qmf.console) can concurrently interact with both QMFv1 and QMFv2 agents. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@929716 13f79535-47bb-0310-9956-ffa450edef68
* Changes needed for QPID-2029 (Clustering and Management don't work well ↵Ted Ross2010-02-121-13/+17
| | | | | | | | | | | | | | | | together) This update changes the indexing of object IDs in the broker-resident management agent from being based on the QMFv1 format (numeric) to the QMFv2 format (string name). This removes the need for numeric objectIds to be synchronized across a set of clustered brokers. Also included in this patch is a fix to a bug in binding creation. Previously, when a binding was created that already existed, the management object for the proposed binding (duplicate of the existing one) was created then destroyed. This is inefficient and causes problems when the name-based indexes collide. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@909610 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2348 - [C++] The HeadersExchange does not support federationTed Ross2010-02-011-2/+2
| | | | | | | Applied patch from Sam Joyce git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@905322 13f79535-47bb-0310-9956-ffa450edef68
* Fix for QPID-2278 - "Store recovery compatibility problem introduced by ↵Kim van der Riet2009-12-151-2/+4
| | | | | | alternate-exchange fix" git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@890965 13f79535-47bb-0310-9956-ffa450edef68
* Fixed problem where broker does not persist the alternate exchange setting ↵Kim van der Riet2009-10-281-0/+18
| | | | | | to the store for durable exchanges, and these settings were being lost upon recovery. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@830687 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1732 - When an exchange is deleted, the binding-count for bound queues ↵Ted Ross2009-10-221-1/+6
| | | | | | is not adjusted for deleted bindings. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@828674 13f79535-47bb-0310-9956-ffa450edef68
* Transient flow-to-disk messages switched to store from BDB. Only ↵Kim van der Riet2009-09-281-0/+4
| | | | | | single-queue transient messages are handled at this point, multi-queue bindings are blocked under all circumstances to prevent routing order dependencies from making the outcome inconsistent. BZ525813 - "Move Flow to disk from BDB to journal" git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@819600 13f79535-47bb-0310-9956-ffa450edef68
* Exchange route() refactorization that eliminates common code in each of the ↵Kim van der Riet2009-09-251-0/+30
| | | | | | Exchange subclass route() methods. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@818935 13f79535-47bb-0310-9956-ffa450edef68
* Reversed checkin of r.813825 until its problems can be resolvedKim van der Riet2009-09-141-43/+0
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@814692 13f79535-47bb-0310-9956-ffa450edef68
* Joint checkin with cctrieloff. Refactor of exchange routing so that ↵Kim van der Riet2009-09-111-0/+43
| | | | | | multi-queue policy differences may be resolved and allow for correct multi-queue flow-to-disk behavior. Different queues may have differing policies and persistence properties - these were previously being neglected. New c++ test added. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@813825 13f79535-47bb-0310-9956-ffa450edef68
* Tidied up namespace usageAndrew Stitcher2009-09-091-13/+13
| | | | | | Miscelleneous whitespace fixes git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@813094 13f79535-47bb-0310-9956-ffa450edef68
* Added management visibility into the alternate exchange and auto-delete ↵Ted Ross2009-08-251-2/+17
| | | | | | | | | | | attributes of an exchange. Note that auto-delete is not implemented for exchanges. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@807712 13f79535-47bb-0310-9956-ffa450edef68