summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/Bridge.cpp
Commit message (Collapse)AuthorAgeFilesLines
* NO-JIRA: Removed Broker.h from all unnecessary header filesAndrew Stitcher2012-12-211-0/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1425038 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4481: HA replication of propagated bindings can lead to incorrect ↵Alan Conway2012-12-111-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | configuration When using dynamic federation between two independent HA broker clusters, it is possible under certain failover scenarios for the propagated bindings on the source broker to become out-of-sync with the true state of bindings on the destination broker. How reproducible: Often -- race condition between re-establishment of federated link and the deletion of a binding on the destination broker Steps to Reproduce: 1. Start a stand-alone broker (route destination) and an HA broker (route source w/ primary and backup) 2. Configure a dynamic federated route between a destination broker and a source broker. The dynamic federation needs to utilize an existing, non-auto-delete queue on the source broker. 3. Subscribe to an auto-delete queue on the destination broker and bind the auto-delete queue to the exchange configured for the dynamic federation 4. Kill the primary source broker 5. Kill the subscription to the auto-delete queue on the destination broker 6. Promote the backup source broker to primary Actual results: With the loss of the client subscription to the auto-delete queue, the binding will be removed. If the binding is removed prior to the re-establishment of the federated link to the source broker, the unbind command will not propagate. Since the backup source broker had previously replicated the propagated binding, the binding will incorrectly remain on the source broker. Expected results: Propagated bindings should not be replicated from the primary to backups since they are transient and will be recreated when the route is re-established.))) git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1420438 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4449 - Reverted much of the original change and re-implemented the fix ↵Ted Ross2012-11-301-1/+1
| | | | | | | | | | 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-1/+1
| | | | | | compatible. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1411761 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4423 C++ Broker federated bridge creation should not declare named queues.Charles E. Rolke2012-11-071-21/+23
| | | | | | | | Named queues are assumed to exist and should not be declared during bridge creation. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1406809 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4378 Deleting dynamic bridge. Delete warning message.Charles E. Rolke2012-10-211-1/+0
| | | | | | | | that is present when links are fine and bridge is unbound. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1400736 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4378 C++ Broker deletes dynamin bridges too aggressively.Charles E. Rolke2012-10-181-2/+2
| | | | | | | | | Link state should not control bridge life cycle. Reviewed by Ted Ross. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1399837 13f79535-47bb-0310-9956-ffa450edef68
* MQPID-4286: QMF queries for HA replication take too long to process (Jason ↵Alan Conway2012-10-151-5/+5
| | | | | | | | | | 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-4076: Patch from Andy Goldstein, don't use infinite credit on bridges ↵Gordon Sim2012-06-201-3/+3
| | | | | | with explicit acknolwedgements git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1352046 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4063: allow configuration of source queue for exchange or dynamic routesKen Giusti2012-06-181-10/+14
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1351518 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4070 - Minor internal-api changes for LinkRegistry and Bridge (in ↵Ted Ross2012-06-151-4/+5
| | | | | | qpid::broker) git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1350746 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-3603: Fix inconsistent use of bridge-name and queue-name for bridge ↵Alan Conway2012-05-151-1/+1
| | | | | | sessions. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1338892 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3603: Add ErrorListener to Bridge to handle session errors.Alan Conway2012-05-081-3/+23
| | | | | | Will be used in HA code. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1335563 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3767: re-index bridge and link by constant name, not addressKen Giusti2012-05-041-28/+82
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1334138 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3352: Fix test for failed session to avoid confusion with as yet ↵Alan Conway2012-04-181-7/+8
| | | | | | | | | | | | | | | | | uninitialised session Previously, Link was using sessionHandler::isReady() to determine if a bridge had failed and needed recovery. However this incorrectcly recovers bridges that are not yet initialized as well as those that have failed. This was causing sporadic core dumps in serveral of the ha_tests.py tests, in particular test_backup_acquired. This patch adds a callback to notify the bridge when the session is detached, and use this as the criteria for recovering a bridge. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1327532 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3603: Merge new HA foundations.Alan Conway2012-02-171-25/+35
| | | | | | | Merged from qpid-3603-7. This is basic support for the new HA approach. For information & limitations see qpid/cpp/design_docs/new-ha-design.txt. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1245587 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3773: generate a unique queue name for the internal bridge queues.Ken Giusti2012-02-101-2/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1242887 13f79535-47bb-0310-9956-ffa450edef68
* Revert "QPID-3352: Fix test for failed session to avoid confusion with as ↵Alan Conway2012-01-201-2/+3
| | | | | | | | | yet uninitialised session" This reverts commit r1233083. It caused a test failure run_federation_tests: federation.FederationTests.test_pull_from_queue_recovery git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1233949 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3352: Fix test for failed session to avoid confusion with as yet ↵Alan Conway2012-01-181-3/+2
| | | | | | uninitialised session git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1233083 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3352 - Federation bridge doesn't recover from session errorsTed Ross2011-07-121-0/+6
| | | | | | | Applied patch from Jason Dillaman git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1145706 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2982 Bug 669452 - Creating a route and using management tools can crash ↵Alan Conway2011-01-181-6/+1
| | | | | | | | | | | | cluster members. Cluster update did not include federation link and bridge objects. Fixed update to include them. Management linkUp and linkDown events were generated only on the broker receiving the link. Suppressed these events in a cluster. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1060568 13f79535-47bb-0310-9956-ffa450edef68
* Adds support for federation in the XML exchange.Jonathan Robie2010-10-201-12/+1
| | | | | | | | | 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
* 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
* Ensure that bindings for dynamic bridges are not propagated over failed ↵Gordon Sim2010-06-091-9/+17
| | | | | | sessions. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@952942 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2348 - [C++] The HeadersExchange does not support federationTed Ross2010-02-011-1/+7
| | | | | | | Applied patch from Sam Joyce git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@905322 13f79535-47bb-0310-9956-ffa450edef68
* Add directory to #includeAlan Conway2009-07-141-6/+6
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@793909 13f79535-47bb-0310-9956-ffa450edef68
* Federation: Propagation of dynamic bindings is now done on the thread ↵Ted Ross2009-07-021-3/+11
| | | | | | | | | | | servicing the federation link (connection). Also, some minor cleanup of unneeded recursive includes. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@790698 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1843 - Cleaned up the interface to the broker's internal management agent.Ted Ross2009-05-111-3/+3
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@773570 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1711: Ensure the session state between the two peers in an inter-broker ↵Gordon Sim2009-03-041-16/+28
| | | | | | | | | | bridging session are kept in sync. (Also made changes to cancellation to ensure that the commands are only issued on the io thread of the connection) git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@750002 13f79535-47bb-0310-9956-ffa450edef68
* Avoid hiding Bridge::idGordon Sim2009-02-241-3/+3
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@747366 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1567: More changes to make clustering and federation work togetherGordon Sim2009-01-221-1/+6
| | | | | | | | | | | * replicate outgoing link traffic to all nodes * coordinate amongst nodes so that only one node actually maintains active links with the others able to take over if that node fails git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@736841 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1567: added 'exactly-once' guarantee to asynchronous replication of ↵Gordon Sim2009-01-201-4/+9
| | | | | | | | | | | | queue state * altered replication protocol to detect and eliminate duplicates * added support for acknowledged transfer over inter-broker bridges * added option to qpid-route to control this git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@736018 13f79535-47bb-0310-9956-ffa450edef68
* Federation enhancements and bug fixes:Ted Ross2008-10-311-1/+4
| | | | | | | | | | qmfconsole.py - minor fixes, make sure object-dereference only queries one broker Bridge.cpp - Added channel-id to queue name to avoid collisions qpid-route - Added link-map feature for viewing the entire federated topology git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@709532 13f79535-47bb-0310-9956-ffa450edef68
* Federation bug-fixes:Ted Ross2008-10-311-7/+7
| | | | | | | | | | | | | | 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
* QPID-1348 - Dynamic binding for federation. Parameterized exchange names ↵Ted Ross2008-10-241-8/+76
| | | | | | for CPP examples git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@707515 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1366 - implementation of automatic anti-looping for federationTed Ross2008-10-161-0/+10
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@705337 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1349 - Push routing for federation (includes hook for dynamic routing)Ted Ross2008-10-101-29/+46
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@703561 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1274 - Changed C++ namespace for generated management code. Improved ↵Ted Ross2008-09-151-5/+7
| | | | | | efficiency of generated functions to use const references for non-simple types. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@695511 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1279 Implementations of management methods can now return error strings ↵Ted Ross2008-09-101-1/+3
| | | | | | along with its own error codes git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@693933 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1170 - Provide a better factory for creation and deletion of the ↵Ted Ross2008-07-161-4/+3
| | | | | | management agent git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@677408 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1170 - Remove boost dependency from management agent interfaceTed Ross2008-07-081-11/+10
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@674994 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1160 - Per-thread counters in management API to avoid lockingTed Ross2008-06-301-5/+9
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@672864 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1113 Management cleanup and performance enhancementsTed Ross2008-06-021-8/+8
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@662470 13f79535-47bb-0310-9956-ffa450edef68
* Support for AMQP 0-10 sessions in C++ broker.Alan Conway2008-05-201-0/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@658246 13f79535-47bb-0310-9956-ffa450edef68
* QPID-990: Patch from Ted Ross to enable persisting of inter-broker routing ↵Gordon Sim2008-05-131-10/+91
| | | | | | entities git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@656023 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1050: Patch from Ted Ross:Gordon Sim2008-05-121-20/+23
| | | | | | | | | | | | | | | | | 1) Durability for federation links (broker-to-broker connections) 2) Improved handling of federation links: a) Links can be created even if the remote broker is not reachable b) If links are lost, re-establishment will occur using an exponential back-off algorithm 3) Durability of exchanges is now viewable through management 4) ManagementAgent API has been moved to an interface class to reduce coupling between the broker and manageable plug-ins. 5) General configuration storage capability has been added to the store/recover interface. This is used for federation links. 6) Management object-ids for durable objects are now themselves durable. (Note: some refactoring needed around ProtocolAccess needed to try and reduce dependencies) git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@655563 13f79535-47bb-0310-9956-ffa450edef68
* Use no-ack in bridging as it is currently an exclusive, temp queueGordon Sim2008-05-021-2/+2
| | | | | | | (will eventually be configurable) git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@652829 13f79535-47bb-0310-9956-ffa450edef68
* QPID-977: shutdown mgmt client cleanly in federation tests (patch from ↵Gordon Sim2008-04-291-1/+10
| | | | | | | | | tross@redhat.com) QPID-981: added custom options to queue declare to tag each message as it goes through a bridge queue and allow loop prevention through specifying exclusions git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@652075 13f79535-47bb-0310-9956-ffa450edef68
* Generate c++ code from final 0-10 specGordon Sim2008-04-241-11/+11
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@651423 13f79535-47bb-0310-9956-ffa450edef68