summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/cluster/Connection.cpp
Commit message (Collapse)AuthorAgeFilesLines
* QPID-1899: Applied patch from Ken Giusti to tie in SASL enctryption to the ↵Gordon Sim2009-11-091-3/+5
| | | | | | handling of the --require-encrypted option git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@834108 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2191: Fix browsing behaviour where messages may have been released out ↵Gordon Sim2009-11-091-0/+1
| | | | | | of order git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@834026 13f79535-47bb-0310-9956-ffa450edef68
* Fix QPID-2086, hang of federated_cluster_test_with_node_failure.Alan Conway2009-09-091-1/+9
| | | | | | | cluster::Connection did not give read credit if there was an exception processing a frame. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@813100 13f79535-47bb-0310-9956-ffa450edef68
* Fix race condition in cluster error handling.Alan Conway2009-07-311-1/+1
| | | | | | | | | If different errors occured almost simultaneously on two different nodes in a cluster, there was a race condition that could cause the cluster to hang. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@799687 13f79535-47bb-0310-9956-ffa450edef68
* Provide more informative cluster logging at notice levelAlan Conway2009-07-291-2/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@799124 13f79535-47bb-0310-9956-ffa450edef68
* Add "[shadow]" prefix to the log-ID for shadow and catch-up connections, to ↵Alan Conway2009-07-171-6/+12
| | | | | | make them easy to identify. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@795223 13f79535-47bb-0310-9956-ffa450edef68
* Update queue listeners in the correct order.Alan Conway2009-07-161-16/+23
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@794736 13f79535-47bb-0310-9956-ffa450edef68
* Add directory to #includeAlan Conway2009-07-141-3/+3
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@793909 13f79535-47bb-0310-9956-ffa450edef68
* Fix members joining cluster while cluster is handling client errors.Alan Conway2009-07-011-4/+10
| | | | | | | | | | | Previously cluster members could abort if a new member joins while existing members are handling a client error. Now if an update offer arrives while an error is in progress, the offering broker retracts the offer and the newcomer must try again. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@790163 13f79535-47bb-0310-9956-ffa450edef68
* Fix cluster race condition with connections closed by broker while in use.Alan Conway2009-06-301-16/+1
| | | | | | | | | | | | | | | | If a client is using a connection that is closed at the broker end because of an error, there is a race condition that allows the connection to be incorrectly re-created on replica brokers which can cause those brokers to exit with an error that does not occur on the directly connected broker. The fix: explicitly announce new connections, shadow connections are no longer implicitly created on first use. Make error-check a cluster control so it can be handled independently of the lifecycle of the connection where an error initially occured. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@789947 13f79535-47bb-0310-9956-ffa450edef68
* Make error-check a cluster-connection control rather than a cluster control.Alan Conway2009-06-181-1/+16
| | | | | | | | | Fixes bug if an error occurs during update. As cluster controls, error-checks were being processed out of sequence with the connection data they referred to. Making them connection controls ensures they are processed in the proper order. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@786294 13f79535-47bb-0310-9956-ffa450edef68
* Handle invalid AMPQ data to a cluster by closing the offending connection.Alan Conway2009-06-171-0/+6
| | | | | | | Prior to this fix, invalid data shut down the whole cluster. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@785788 13f79535-47bb-0310-9956-ffa450edef68
* Performance improvements in AggregateOutput and SemanticState.Alan Conway2009-06-161-1/+15
| | | | | | | | | | | | | | Replaced AggregateOutput hierarchy with a flat list per connection holding only the OutputTasks that are potentially active. Tasks are droped from the list as soon as they return false, and added back when they may have output. Inlined frequently-used SequenceNumber functions. Replace std::list in QueueListeners with std::vector. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@785408 13f79535-47bb-0310-9956-ffa450edef68
* Add flag to broker Connection so that it knows if it is aAndrew Stitcher2009-06-111-0/+1
| | | | | | | local or shadow connection git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@783789 13f79535-47bb-0310-9956-ffa450edef68
* Further fix to new cluster member state transfer to fix a case where unacked ↵Gordon Sim2009-06-051-1/+2
| | | | | | messages on ring policy queue cause inconsistencies in queue state between nodes. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@782075 13f79535-47bb-0310-9956-ffa450edef68
* Ensure that ring queue behaves as expected when replicated to newly joined ↵Gordon Sim2009-06-031-0/+1
| | | | | | | | | | cluster node. Altered queueDurabilityPropagationToNewbie test to not use in-process broker to fix error caused by linking change. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@781454 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1488: Ensure policy state (+ store state & mgmt stats) are accurate on ↵Gordon Sim2009-05-271-7/+4
| | | | | | | | | | | | | | newly joined nodes by informing the queue of any logically enqueued messages that are currently acquired (but not accepted or released). QPID-1873: Ensure that the various properties of a queue (durability, exclusivity etc) are correctly replicated to new cluster members. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@779183 13f79535-47bb-0310-9956-ffa450edef68
* Improved doOutput algorithm.Alan Conway2009-05-261-9/+2
| | | | | | | | | Simpler & more robust algorithm based on message count rather than byte size. Self-tuning, removes 2 hard-to-explain cluster options. Similar or marginally better performance. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@778896 13f79535-47bb-0310-9956-ffa450edef68
* Remove useless qpid/shared_ptr.h wrapper.Alan Conway2009-05-061-8/+11
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@772294 13f79535-47bb-0310-9956-ffa450edef68
* Improved & simplified cluster output algorithm.Alan Conway2009-04-291-2/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@769914 13f79535-47bb-0310-9956-ffa450edef68
* Cleaned up some un-necessary #include dependencies.Alan Conway2009-04-151-2/+0
| | | | | | | Removed un-used LatencyMetric hack. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@765285 13f79535-47bb-0310-9956-ffa450edef68
* Fix issues when cluster is run with persistence enabled.Alan Conway2009-04-111-15/+36
| | | | | | | | | | - Handle partial failures (e.g. due to disk error): failing brokers shut down, others continue. - Enable persistence in cluster tests. - Correct message status in DeliveryRecord updates. - Remove qpid.update queue when update complete - avoid it becoming persistent git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@764204 13f79535-47bb-0310-9956-ffa450edef68
* Fix cluster TTL: replicte expiry information to newcomers.Alan Conway2009-03-091-2/+6
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@751760 13f79535-47bb-0310-9956-ffa450edef68
* Fixed race conditions in cluster.Alan Conway2009-03-081-27/+6
| | | | | | | | Execute all cluster logic in frameDeliverQueue thread, decoding only in eventDeliverQueue thread. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@751557 13f79535-47bb-0310-9956-ffa450edef68
* cluster: fix delivery-property.exchange-name set on updated messages.Alan Conway2009-03-051-2/+3
| | | | | | | | | Logging improvements, useful for debugging: - qpid/SessionState.cpp: show frame bodies with command IDs. - assign cluster-wide id number to each Event. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@750456 13f79535-47bb-0310-9956-ffa450edef68
* Replicate connection decoder fragments to new members.Alan Conway2009-03-021-20/+45
| | | | | | | | | | | | Refactoring: - Merge Decoder into ConnectionMap. - Process cluster controls in event queue thread. - Use counter not pointer for connection ID, avoid re-use. - Do all processing in event queue thread to avoid races (temporary pending performance measurements) git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@749473 13f79535-47bb-0310-9956-ffa450edef68
* Fixed issue with producer flow control in a cluster.Alan Conway2009-02-241-4/+18
| | | | | | | | | | | | | | | | | | Producer flow control uses a Timer and other clock-based calculations to send flow control commands. These commands are not predictably ordered from the clusters point of view. Added getClusterOrderProxy() to SessionState. In a cluster it returns a proxy that defers sending a command to the client until it is multicast to the cluster. In a stand alone broker it is just the normal proxy. Updated producer flow control to use this proxy. Cluster flow control is turned off in shadow connections. Only the directly connected node does flow control calculations and multicasts the commands to send. All nodes sending of the commands thru SessionState to ensure consistent session state (e.g. command numbering.) git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@747528 13f79535-47bb-0310-9956-ffa450edef68
* Cluster security support:Alan Conway2009-02-121-1/+2
| | | | | | | | - Set correct user ID on update connections. - Allow configuration of user, pass and mechanism used for update connections. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@743839 13f79535-47bb-0310-9956-ffa450edef68
* Fix race condition with read-credit.Alan Conway2009-02-111-0/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@743416 13f79535-47bb-0310-9956-ffa450edef68
* Fix memory leak in cluster code.Alan Conway2009-02-111-4/+7
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@743346 13f79535-47bb-0310-9956-ffa450edef68
* Fix cluster flow control bug: hang with large messages (>frame-max) and low ↵Alan Conway2009-02-101-2/+2
| | | | | | --cluster-read-max. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@743114 13f79535-47bb-0310-9956-ffa450edef68
* Cluster support for message time-to-live.Alan Conway2009-02-091-6/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@742774 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1618 from Mick Goulish: brokers joining cluster store persistent ↵Alan Conway2009-02-051-0/+5
| | | | | | messages that have been sent but not acknowledged. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@741123 13f79535-47bb-0310-9956-ffa450edef68
* Fix assertion due to doOutput control being sent after local connection closed.Alan Conway2009-02-041-2/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@740872 13f79535-47bb-0310-9956-ffa450edef68
* Fix for race conditions in cluster join.Alan Conway2009-02-031-25/+8
| | | | | | | | | - ConnectionDecoder: separated from Connection. - cluster/PollableQueue: stop processing frames if PollableQueue is stopped. - move state checks in event-queue handler to frame-queue handler. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@740459 13f79535-47bb-0310-9956-ffa450edef68
* cluster/EventFrame.cpp: Add operator<< for EventFrameAlan Conway2009-01-271-1/+0
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@738107 13f79535-47bb-0310-9956-ffa450edef68
* Cluster rename: dump -> update, newbie -> joinerAlan Conway2009-01-271-23/+23
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@737971 13f79535-47bb-0310-9956-ffa450edef68
* cluster: Add sequence number to events & framesAlan Conway2009-01-271-3/+3
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@737968 13f79535-47bb-0310-9956-ffa450edef68
* Use special management ids for objects used in state transfer to new ↵Gordon Sim2009-01-231-1/+3
| | | | | | | | | members. This prevents the ids getting out of sync across the cluster and allows management methods to be used reliably. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@737203 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1567: More changes to make clustering and federation work togetherGordon Sim2009-01-221-4/+23
| | | | | | | | | | | * 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
* Removed BodyHolder: minor performance improvement, opens the way for more ↵Alan Conway2009-01-221-1/+1
| | | | | | efficient memory management. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@736783 13f79535-47bb-0310-9956-ffa450edef68
* cluster: Pipeline decoding. About 10% improvement in latency and throughput.Alan Conway2009-01-211-18/+27
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@736409 13f79535-47bb-0310-9956-ffa450edef68
* Additional latency measurement points.Alan Conway2009-01-211-1/+3
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@736326 13f79535-47bb-0310-9956-ffa450edef68
* cluster: refactor multicast concerns into separate Multicaster class with ↵Alan Conway2008-12-111-2/+2
| | | | | | separate locking. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@725853 13f79535-47bb-0310-9956-ffa450edef68
* Cluster: Option --cluster-read-max configures read-to-redeliver flow-control.Alan Conway2008-12-091-3/+3
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@724857 13f79535-47bb-0310-9956-ffa450edef68
* src/qpid/cluster/OutputInterceptor.cpp: revert locking.Alan Conway2008-12-081-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@724330 13f79535-47bb-0310-9956-ffa450edef68
* Cluster: fixed error in credit allocation.Alan Conway2008-12-081-5/+3
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@724326 13f79535-47bb-0310-9956-ffa450edef68
* OutputControl and subclasses: added giveReadCredit() for IO level flow control.Alan Conway2008-12-081-4/+11
| | | | | | | Cluster: Set read credit limit for cluster connections. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@724233 13f79535-47bb-0310-9956-ffa450edef68
* Cluster replicates queues/exchanges with same encode/decode functions as the ↵Alan Conway2008-11-121-0/+13
| | | | | | | | | store. Removed un-necessary heap allocation in QPID_LOG statements. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@713425 13f79535-47bb-0310-9956-ffa450edef68
* Include DeliveryRecord::credit in replication to new members.Alan Conway2008-11-111-2/+3
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@713171 13f79535-47bb-0310-9956-ffa450edef68