summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/Queue.cpp
Commit message (Collapse)AuthorAgeFilesLines
* QPID-2365 - Reroute messages from a queue featureTed Ross2010-01-291-8/+57
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@904654 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2347: Signal deletion of queue to active subscribers via a ↵Gordon Sim2010-01-221-1/+21
| | | | | | resource-deleted exception. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@902055 13f79535-47bb-0310-9956-ffa450edef68
* Cluster-safe assertions.Alan Conway2010-01-201-2/+13
| | | | | | | | | Assert that replicated data structures are modified in a cluster-safe context - in cluster delivery thread or during update. Assertions added to Queue.cpp and SemanticState.cpp. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@901282 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2295: Clustered + persistent broker crashes with inconsistency error.Alan Conway2010-01-181-10/+0
| | | | | | | | | | Code running in the store's timer thread was causing inconsistent changes in message allocation. This code is out-of-date, we no longer need to notify the Queue when persistent storage completes as the message is already available on the queue. Removed the out-dated code. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@900448 13f79535-47bb-0310-9956-ffa450edef68
* Removed dead code: OutputTask::hasOutput and Queue::checkForMessages.Alan Conway2010-01-141-26/+0
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@899356 13f79535-47bb-0310-9956-ffa450edef68
* fix & test QPID-2320Carl C. Trieloff2010-01-061-6/+5
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@896687 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2278: Encode alternate exchange information at the end of the buffer ↵Gordon Sim2009-12-161-4/+6
| | | | | | for backward compatibility with stores created from older versions git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@891195 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2266: error sending update: Enqueue capacity threshold exceededAlan Conway2009-12-111-1/+1
| | | | | | | | | Fix for the problem with a test to verify that messages going to the store have the same headers and content-size for an updatee or a broker that receives the publish directly. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@889813 13f79535-47bb-0310-9956-ffa450edef68
* Change from linear to binary search in requeueGordon Sim2009-11-131-5/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@835808 13f79535-47bb-0310-9956-ffa450edef68
* Also remove liner search from seek() & add testsCarl C. Trieloff2009-11-101-6/+5
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@834607 13f79535-47bb-0310-9956-ffa450edef68
* remove looping for position search and replace with stl algorithms for ↵Carl C. Trieloff2009-11-091-37/+58
| | | | | | better performance git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@834172 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2191: Fix browsing behaviour where messages may have been released out ↵Gordon Sim2009-11-091-1/+5
| | | | | | of order git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@834026 13f79535-47bb-0310-9956-ffa450edef68
* Erasing an iterator invalidates the iterator; changed the code to not ↵Stephen D. Huston2009-11-031-2/+5
| | | | | | dereference an iterator that was just deleted. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@832233 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2181 - Alternate exchange on queue is not visible in management toolsTed Ross2009-10-301-0/+6
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@831351 13f79535-47bb-0310-9956-ffa450edef68
* Fixed problem of queue alternate-exchange property not being persisted on ↵Kim van der Riet2009-10-291-2/+17
| | | | | | persistent queues, and on recovery this property is lost. No tests exist as yet for this. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@831082 13f79535-47bb-0310-9956-ffa450edef68
* r817742 (the fix for QPID-2102) did not cover the case for 2pc transactions ↵Gordon Sim2009-10-181-0/+4
| | | | | | recovered in the prepared state; this fixes that case. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@826460 13f79535-47bb-0310-9956-ffa450edef68
* Transient flow-to-disk messages switched to store from BDB. Only ↵Kim van der Riet2009-09-281-2/+2
| | | | | | 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
* QPID-2102: Changed QueuePolicy to rely on external locking and require ↵Gordon Sim2009-09-281-10/+9
| | | | | | | | | | dequeues to be handled by policy user rather. (r817742 introduced a deadlock in ring queue policy which this checkin fixes) git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@819505 13f79535-47bb-0310-9956-ffa450edef68
* This patch requires svn 817742, corrects the lock issue for ring queue in ↵Carl C. Trieloff2009-09-231-11/+17
| | | | | | 817742, and protects replication when used together with flow to disk git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@818244 13f79535-47bb-0310-9956-ffa450edef68
* Joint checkin from gsim, kpvdr, cctrieloff. See QPID-2102: Exceeding reject ↵Kim van der Riet2009-09-221-27/+34
| | | | | | queue policy under a transaction causes broker crash git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@817742 13f79535-47bb-0310-9956-ffa450edef68
* Reversed checkin of r.813825 until its problems can be resolvedKim van der Riet2009-09-141-63/+75
| | | | 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-75/+63
| | | | | | 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
* handle fail setting last-node-standing with unit test, still needs system testCarl C. Trieloff2009-07-311-10/+14
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@799658 13f79535-47bb-0310-9956-ffa450edef68
* Make replication of queue events not dependant on abs queue position, but ↵Carl C. Trieloff2009-07-301-0/+4
| | | | | | rather use source queue sequence numbers. Also add in more error checking and tests git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@799435 13f79535-47bb-0310-9956-ffa450edef68
* Add directory to #includeAlan Conway2009-07-141-8/+8
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@793909 13f79535-47bb-0310-9956-ffa450edef68
* Fix to cover this case:Carl C. Trieloff2009-07-081-0/+4
| | | | | | | | | | | | | 1. start two nodes 2. create cluster durable queue and add some messages 3. kill one node (trigger force-persistent behaviour) 4. stop and recover remaining node 5. add another node 6. kill that new node again git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@792285 13f79535-47bb-0310-9956-ffa450edef68
* fix for regression in patch & test to prevent regression againCarl C. Trieloff2009-07-081-1/+1
| | | | | | | | | | | | | | | | | Simulate this: 1. start 2 nodes 2. create cluster durable lvq 3. send a transient message to the queue 4. kill one of the nodes (to trigger force persistent behaviour)... 5. then restart it (to turn off force persistent behaviour) 6. send another transient message with same lvq key as in 3 7. kill the second node again (retrigger force persistent) 8. stop and recover the first node git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@792259 13f79535-47bb-0310-9956-ffa450edef68
* More tests and complete fix for svn791672 commit -- correct requeueCarl C. Trieloff2009-07-081-5/+11
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@792208 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1974: Fixes (and tests) for updating lvq state to new cluster members.Gordon Sim2009-07-081-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@792103 13f79535-47bb-0310-9956-ffa450edef68
* More tests and completion of fix for 791672Carl C. Trieloff2009-07-071-5/+11
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@791858 13f79535-47bb-0310-9956-ffa450edef68
* Corrected the case where message on more than one queue does not persist ↵Carl C. Trieloff2009-07-071-1/+1
| | | | | | when last node standing is enabled git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@791672 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1936: Fix potential deadlock for durable ring queueGordon Sim2009-06-231-1/+16
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@787625 13f79535-47bb-0310-9956-ffa450edef68
* Performance improvements in AggregateOutput and SemanticState.Alan Conway2009-06-161-0/+2
| | | | | | | | | | | | | | 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
* Lock should be released in LVQ before dequeuing old message to prevent ↵Gordon Sim2009-06-091-0/+1
| | | | | | possible deadlocks when a store plugin is loaded. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@782979 13f79535-47bb-0310-9956-ffa450edef68
* Fix change in test logic introduced by r782075.Gordon Sim2009-06-081-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@782555 13f79535-47bb-0310-9956-ffa450edef68
* Further fix to new cluster member state transfer to fix a case where unacked ↵Gordon Sim2009-06-051-2/+7
| | | | | | 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
* QPID-1488: Ensure policy state (+ store state & mgmt stats) are accurate on ↵Gordon Sim2009-05-271-0/+13
| | | | | | | | | | | | | | 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
* QPID-1843 - Cleaned up the interface to the broker's internal management agent.Ted Ross2009-05-111-9/+9
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@773570 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1724: Allow replication events to be shared across multiple federations ↵Gordon Sim2009-03-101-0/+8
| | | | | | bridges. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@752290 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1721: Fixes for replication between clusters when new members are addedGordon Sim2009-03-091-3/+12
| | | | | | | | | | * suppress event generation during node catch up * ensure sequence counters used for duplicate detection are synchronised in both primary and dr clusters when new members join * connect queue with the event manager within queue registry rather than adapter as the latter path is not used for catchup git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@751719 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1695: Make LVQ persist durable messagesGordon Sim2009-02-261-5/+18
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@748214 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1685: Fixed ring queue policyGordon Sim2009-02-251-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@747744 13f79535-47bb-0310-9956-ffa450edef68
* Ensure that the queue depth in bytes remains accurate for LVQ. This also ↵Gordon Sim2009-02-131-1/+3
| | | | | | ensures that there are no underflow exceptions from the policy that keeps this count. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@744222 13f79535-47bb-0310-9956-ffa450edef68
* Queue::checkLvqReplace() needs to update the lvq map if it makes a ↵Gordon Sim2009-02-121-2/+11
| | | | | | | | | | replacement or the map will contain a pointer to a stale message and further updates will be lost. Also added in locking to set-/get- ReplacementMessage() in Message.cpp git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@743857 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1660: If selected consumer can't take a message, ensure others are ↵Gordon Sim2009-02-121-6/+26
| | | | | | notified of message availability. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@743694 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1611 patch from mickCarl C. Trieloff2009-01-251-3/+7
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@737460 13f79535-47bb-0310-9956-ffa450edef68
* Use special management ids for objects used in state transfer to new ↵Gordon Sim2009-01-231-2/+6
| | | | | | | | | 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
* Reverted checkin r.736814 as it breaks the store recover.Kim van der Riet2009-01-231-7/+0
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@737091 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1611: Patch from Mick Goulish to ensure queues are created in store in ↵Gordon Sim2009-01-221-0/+7
| | | | | | cluster configuration git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@736814 13f79535-47bb-0310-9956-ffa450edef68
* Fix tests broken by r735776: check payload pointer before use. Gordon Sim2009-01-201-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@735988 13f79535-47bb-0310-9956-ffa450edef68