summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/SessionAdapter.cpp
Commit message (Collapse)AuthorAgeFilesLines
* QPID-4976: support standard lifetime policiesGordon Sim2013-07-101-3/+0
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1501768 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4712: authorisation for AMQP 1.0 connectionsGordon Sim2013-06-251-14/+14
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1496466 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4905: Stopped broker::Broker needing to refer to broker::ConnectionAndrew Stitcher2013-06-191-1/+1
| | | | | | - Also removed ConnectionToken which didn't add anything over OwnershipToken git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1494640 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4555: HA Replace QueueSettings::declaredExclusive with isTemporary.Alan Conway2013-02-081-1/+2
| | | | | | | | Minor reorganization to make things clearer. It was not at all obvious what declaredExclusive mean, isTemporary makes more sense (suggested by gsim https://reviews.apache.org/r/9258/) git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1444200 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4555: HA Add QueueSettings::declaredExclusive for exclusive queues.Alan Conway2013-02-071-0/+1
| | | | | | | | | | This is set when the queue is created, before calling ConfigurationObserver::queueCreate, and does not change thereafter. The existing Queue::owner not set until after ConfigurationObserver::queueCreate and does change as ownership can be released and acquired. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1443679 13f79535-47bb-0310-9956-ffa450edef68
* 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
* NO-JIRA: Removed Timer.h out of the chain of header files included by Broker.hAndrew Stitcher2012-12-211-0/+1
| | | | | | (since that is widely included) to avoid unnecessary recompilation git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1425037 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4481: HA replication of propagated bindings can lead to incorrect ↵Alan Conway2012-12-111-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-4428: HA add UUID tag to avoid using an out of date queue/exchange.Alan Conway2012-11-141-11/+0
| | | | | | | | | | | | | | | | | 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
* QPID-4394: HA QMF events out of orderAlan Conway2012-11-011-5/+0
| | | | | | | | | | | | | | | | QMF create/delete events for auto-delete queues can be generated out-of-order because they are not regulated by any lock. This creates problems for HA replication. This commit does 2 things: 1. Dispatch QMF events via a pollable queue. Events are encoded in the thread calling raiseEvent then put on a PollableQueue to be dispatched in a separate thread. This allows us to move the raiseEvent calls inside registry locks to ensure they are ordered. 2. Move queue create and delete raiseEvent calls inside the queue registry lock so they are executed in order. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1404590 13f79535-47bb-0310-9956-ffa450edef68
* Jira QPID-4142Michael Goulish2012-09-101-0/+5
| | | | | | | | browse-only queues git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1382991 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4178: broker refactoringGordon Sim2012-08-101-5/+10
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1371676 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4079 log entries track managed object life cyclesCharles E. Rolke2012-07-131-0/+23
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1361262 13f79535-47bb-0310-9956-ffa450edef68
* QPID-4075: Raise delete event for autodeleted queues alsoGordon Sim2012-06-221-2/+5
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1352874 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-3964: Enforce 'access' premission rather than 'create' for passive ↵Gordon Sim2012-04-201-16/+4
| | | | | | declares; remove the now redundant 'passive' property from ACL model git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1328384 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3950: Allow browsing of queues with exclusive subscriptionsAlan Conway2012-04-171-0/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1327135 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3942: embed xid struct in more readable form into error messages or log ↵Gordon Sim2012-04-101-17/+10
| | | | | | statements git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1311875 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3921: C++ header files need tidyupAndrew Stitcher2012-03-281-1/+2
| | | | | | | | | | Tidied up header use of FieldValue.h - Removed all unnecessary includes of FieldValue.h from other header files especially Array.h. (This avoids the world recompiling when working on FieldValue!) - Corrected up header guards in Array.h git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1306595 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3603: Merge new HA foundations.Alan Conway2012-02-171-2/+2
| | | | | | | 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-3603: Fix spurious "exchange not found" error and debug messages.Alan Conway2012-01-181-50/+45
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1233085 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2630: ensure that exclusive, auto-deleted queues are freed up on early ↵Gordon Sim2011-03-011-4/+4
| | | | | | deletion (remove some confusion between connection and session scope for these) git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1075777 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2324: Raise 404 on cancellation if no such subscription exists.Gordon Sim2011-02-251-1/+3
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1074642 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2326: correct exception code for unknown exchange typeGordon Sim2011-02-251-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1074634 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2935: merge producer flow control (C++ broker).Ken Giusti2011-02-191-1/+7
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1072356 13f79535-47bb-0310-9956-ffa450edef68
* QPID-3015: Added create and delete methods to management schema for brokerGordon Sim2011-02-181-178/+100
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1072179 13f79535-47bb-0310-9956-ffa450edef68
* Reverts r1068042.Jonathan Robie2011-02-081-58/+50
| | | | | | We will fix this bug in the C++ client messaging library rather than the broker. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1068417 13f79535-47bb-0310-9956-ffa450edef68
* Ensures that messages acquired, but not acked, are released before a queue ↵Jonathan Robie2011-02-071-50/+58
| | | | | | | | | | | is deleted. Otherwise, these messages are not routed to an alternate exchange, and the queue is not actually deleted. Resolves QPID-3040 / Red Hat BZ 674678. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1068042 13f79535-47bb-0310-9956-ffa450edef68
* Fix for RHBZ656385: "Data store can become corrupt with small store file ↵Kim van der Riet2011-01-281-1/+2
| | | | | | size and large wcache-page-size". The second issue from comments 13-16 in which the queue remains after the store throws the exception is solved. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1064711 13f79535-47bb-0310-9956-ffa450edef68
* Allows browsing of exclusive queues held by another session. Jonathan Robie2010-10-041-1/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@1004357 13f79535-47bb-0310-9956-ffa450edef68
* Use UnauthorizedAccessException for ACL violations rather than ↵Gordon Sim2010-05-061-11/+11
| | | | | | NotAllowedException git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@941636 13f79535-47bb-0310-9956-ffa450edef68
* Merged the changes from the qmf-devel0.7a branch back to the trunk.Ted Ross2010-03-311-4/+5
| | | | | | | | | | | | | | | | | 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
* QPID-2347: Signal deletion of queue to active subscribers via a ↵Gordon Sim2010-01-221-0/+1
| | | | | | resource-deleted exception. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@902055 13f79535-47bb-0310-9956-ffa450edef68
* In exchange-bound, set queue-not-found correctly even if exchange is not found.Gordon Sim2009-11-191-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@882322 13f79535-47bb-0310-9956-ffa450edef68
* Fix for QPID-2171 "No checks made for reserved exchange names "amq.*" and ↵Kim van der Riet2009-10-291-2/+2
| | | | | | "qpid.*". This checkin adds the qpid check, r.830751 added the amq check. Python tests also inlcuded which checks for these prefixes. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@830930 13f79535-47bb-0310-9956-ffa450edef68
* Fixed lack of checking for reserved exchange names that start with "amq." ↵Kim van der Riet2009-10-281-0/+3
| | | | | | according to the AMQP spec. Added a python test for this functionality. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@830751 13f79535-47bb-0310-9956-ffa450edef68
* Fixed problem where broker does not persist the alternate exchange setting ↵Kim van der Riet2009-10-281-3/+3
| | | | | | 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
* This is related to QPID-2108Rajith Muditha Attapattu2009-09-291-2/+2
| | | | | | | | | I was initially setting the qpid.max_count and qpid.max_size as strings instead of ints as expected by the API. I also incorrectly fetched them as strings on the broker side. This commit fixes acl.py test script to use int values for the above properties and then fetches them appropriately from the broker side. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@820082 13f79535-47bb-0310-9956-ffa450edef68
* I have applied the patch attached to QPID-2108 from Tim Platten with a few ↵Rajith Muditha Attapattu2009-09-291-2/+5
| | | | | | | | | | | modifications. (Please refer to the JIRA for a description of these modifications) I also fixed the formatting and added more debug loggging for the publish acl lookup method in AclData.cpp I also added test cases to cover QPID-2108 git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@819948 13f79535-47bb-0310-9956-ffa450edef68
* This commit contains the followingRajith Muditha Attapattu2009-09-111-7/+11
| | | | | | | | | | 1. Applying patches from Tim Platten attched to QPID-2062 and QPID-2063 2. Fixed QPID-2098 3. Added test cases for QPID-2062 and QPID-2063 4. Added more user friendly logging for ACL rule processing and lookup methods. In debug mode the logging should now provide more visibility into how rules are evaluated. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@813850 13f79535-47bb-0310-9956-ffa450edef68
* QPID-2080 - crash when attempting to modify an exchange's alternateTed Ross2009-09-041-2/+4
| | | | | | | Committed patch from Ken Giusti git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@811188 13f79535-47bb-0310-9956-ffa450edef68
* Optimized handling of accepts and completions.Alan Conway2009-08-121-5/+2
| | | | | | | | | | SemanticState::accept/completed now make a single pass through the SequenceSet of commands and the unacked DeliveryRecord list in parallel, rather than doing a pass through unacked for every range in the SequenceSet. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@803655 13f79535-47bb-0310-9956-ffa450edef68
* Replace TRUE with _TRUE, FALSE with _FALSE to avoid macro conflicts on ↵Stephen D. Huston2009-07-221-8/+8
| | | | | | Windows MSVC git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@796833 13f79535-47bb-0310-9956-ffa450edef68
* Remove some unnecessary promotions of char* to std::string.Alan Conway2009-07-211-6/+8
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@796333 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
* QPID-1488: Ensure policy state (+ store state & mgmt stats) are accurate on ↵Gordon Sim2009-05-271-1/+0
| | | | | | | | | | | | | | 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-1721: Fixes for replication between clusters when new members are addedGordon Sim2009-03-091-4/+0
| | | | | | | | | | * 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
* Cluster security support:Alan Conway2009-02-121-11/+11
| | | | | | | | - 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
* QPID-1567: Initial support for asynchronous queue state replicationGordon Sim2009-01-151-0/+4
| | | | | | | | | | | | | | | * Added QueueEvents class with per broker instance * Modified qpid::broker::Queue to notify QueueEvents of enqueues and dequeues (based on configuration) * Added replication subdir containing two plugins: - an event listener that registers with QueueEvents and creates messages representing received events on a replication queue - a custom exchange type for processing messages of the format created by the listener plugin * Added new option for controlling event generation to qpid::client::QueueOptions * Added new queue option to qpid-config script for the same git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@734674 13f79535-47bb-0310-9956-ffa450edef68