summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/broker/SessionState.h
Commit message (Collapse)AuthorAgeFilesLines
* Fix build warnings/errors on WindowsStephen D. Huston2009-07-311-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@799720 13f79535-47bb-0310-9956-ffa450edef68
* Change all broker users of broker::Timer to use sys::TimerAndrew Stitcher2009-07-301-2/+5
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@799273 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
* Reverted checkins 793119, 793120, 793121, 793122 because of problems with ↵Kim van der Riet2009-07-131-5/+2
| | | | | | heartbeats and the store tests. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@793602 13f79535-47bb-0310-9956-ffa450edef68
* Change all broker users of broker::Timer to use sys::TimerAndrew Stitcher2009-07-101-2/+5
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@793121 13f79535-47bb-0310-9956-ffa450edef68
* Performance improvements in AggregateOutput and SemanticState.Alan Conway2009-06-161-0/+3
| | | | | | | | | | | | | | 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
* Plumbed in an a connection abort operation to the OutputHandlerAndrew Stitcher2009-06-081-2/+3
| | | | git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@782649 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1488: Ensure policy state (+ store state & mgmt stats) are accurate on ↵Gordon Sim2009-05-271-0/+1
| | | | | | | | | | | | | | 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
* Changes to build DLLs instead of static libs on Windows; primarily added ↵Stephen D. Huston2009-03-121-1/+1
| | | | | | decorators to exported names. Fixes QPID-1673 git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@753014 13f79535-47bb-0310-9956-ffa450edef68
* Fixed issue with producer flow control in a cluster.Alan Conway2009-02-241-1/+10
| | | | | | | | | | | | | | | | | | 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
* Fixes to producer flow control to reduce the numberAndrew Stitcher2009-02-041-0/+1
| | | | | | | | | of flow messages sent to the client and to eliminate a concurrency issue updating the broker flow control state. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@740933 13f79535-47bb-0310-9956-ffa450edef68
* Add in management statistics for client flow control.Andrew Stitcher2009-02-031-5/+7
| | | | | | | Really fixed Client library to count credit the same way the broker does. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@740433 13f79535-47bb-0310-9956-ffa450edef68
* Producer side rate throttling:Andrew Stitcher2009-01-271-1/+7
| | | | | | | | | This uses the Message.Flow command to send credit from broker to client to ensure that the client doesn't exceed a rate configured on the broker per session. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@738247 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1567: added 'exactly-once' guarantee to asynchronous replication of ↵Gordon Sim2009-01-201-3/+6
| | | | | | | | | | | | 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
* OutputControl and subclasses: added giveReadCredit() for IO level flow control.Alan Conway2008-12-081-0/+1
| | | | | | | 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
* QPID-1413: disable output before sending detachGordon Sim2008-11-061-0/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@711931 13f79535-47bb-0310-9956-ffa450edef68
* constants.rb: generate type code constants for AMQP types. Useful with Array.Alan Conway2008-11-041-4/+1
| | | | | | | | | framing/Array: - added some std:::vector like functions & typedefs. - use TypeCode enums, human readable ostream << operator. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@711365 13f79535-47bb-0310-9956-ffa450edef68
* Replicate session state for un-acknowledged messages to new cluster members.Alan Conway2008-10-301-1/+3
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@709242 13f79535-47bb-0310-9956-ffa450edef68
* Refactored DeliveryRecord and delivery path to remove some redundant code.Gordon Sim2008-10-211-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@706811 13f79535-47bb-0310-9956-ffa450edef68
* cluster: DumpClient replicates session MessageBuilder.Alan Conway2008-10-201-1/+3
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@706381 13f79535-47bb-0310-9956-ffa450edef68
* cluster: DumpClient updates consumer notifyEnabled and blocked.Alan Conway2008-10-201-0/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@706293 13f79535-47bb-0310-9956-ffa450edef68
* Fix build problems on rhel 5.2 and 64-bit encoding bug.Alan Conway2008-09-261-1/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@699413 13f79535-47bb-0310-9956-ffa450edef68
* Fixed error handling session-busy condition on broker.Alan Conway2008-09-221-0/+2
| | | | | | | Added accessors to iterate over broker::SemanticState consumers. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@697951 13f79535-47bb-0310-9956-ffa450edef68
* Clean up unused members/testsAlan Conway2008-09-191-1/+0
| | | | | | | | qpid/broker/SemanticState.h,.cpp,SessionState.h: removed unused members. tests/DumpClientTest.cpp: unused, remove. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@697075 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1274 - Changed C++ namespace for generated management code. Improved ↵Ted Ross2008-09-151-2/+2
| | | | | | 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/+1
| | | | | | 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
* Cluster support for copying shared broker state to new members.Alan Conway2008-09-101-1/+0
| | | | | | | | | | | | cluster/DumpClient: Copies broker shared state to a new broker via AMQP. broker/*Registry, Queue, QueueBindings: Added iteration functions for DumpClient broker/SemanticState.cpp: Allow DumpClient to sidestep setting of delivery-properties.exchange. client/Connection.h: Added Connection::open(Url) overload. client/SessionImpl: Added send(AMQBody, FrameSet) overload for forwarding broker messages. tests/cluster_test.cpp: Added test for DumpClient copying shared state between brokers. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@693918 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1261: initial fix (this degrades performance for shared queues with ↵Gordon Sim2008-09-091-2/+0
| | | | | | more than one consumer; I'll work on fixing that asap). This also moves the lock refered to in QQPID-1265 which I will update accordingly. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@693518 13f79535-47bb-0310-9956-ffa450edef68
* Cluster: shadow connections, fix lifecycle & valgrind issues.Alan Conway2008-07-171-10/+0
| | | | | | | | | - tests/ForkedBroker: improved broker forking, exec full qpidd. - Plugin::addFinalizer - more flexible way to shutdown plugins. - Reworked cluster extension points using boost::function. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@677471 13f79535-47bb-0310-9956-ffa450edef68
* HandlerChain: plug-in handler chain extension points. Replaces ↵Alan Conway2008-07-081-5/+9
| | | | | | | | | Handler<T>::Chain. Updated Sessoin & Connection handler chains and Cluster. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@675017 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1170 - Remove boost dependency from management agent interfaceTed Ross2008-07-081-2/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@674994 13f79535-47bb-0310-9956-ffa450edef68
* Bring cluster code up to date.Alan Conway2008-06-181-13/+22
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@669236 13f79535-47bb-0310-9956-ffa450edef68
* Support for AMQP 0-10 sessions in C++ broker.Alan Conway2008-05-201-35/+12
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@658246 13f79535-47bb-0310-9956-ffa450edef68
* QPID-1052: Patch from Ted RossGordon Sim2008-05-121-1/+3
| | | | | | | | | | | | This patch contains the following: 1) The session-id reported by the management API now matches the session.name in the session table 2) management.py API has a new callback for closed connections 3) qpid-tool uses the closed-connection handler to notify the user of a lost connection git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@655619 13f79535-47bb-0310-9956-ffa450edef68
* Generate c++ code from final 0-10 specGordon Sim2008-04-241-0/+1
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@651423 13f79535-47bb-0310-9956-ffa450edef68
* Re-introduced old 'no-local' behaviour for exclusive queues via a ↵Gordon Sim2008-03-311-1/+2
| | | | | | proprietary arg to queue.declare. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@642981 13f79535-47bb-0310-9956-ffa450edef68
* Send accept in response to message publications if required.Gordon Sim2008-03-271-3/+7
| | | | | | | | Hold up completion (and accept) until message from transfer is fully enqueued. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@641929 13f79535-47bb-0310-9956-ffa450edef68
* forked python tests for 0-10 preview and 0-10 finalGordon Sim2008-03-051-3/+3
| | | | | | | | | | | fixed result handling in c++ broker modified testlib in python to allow new 0-10 client to be run as well converted query tests for final 0-10 added python tests for 0-10 final to automated set for c++ broker (most unconverted still) git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@634003 13f79535-47bb-0310-9956-ffa450edef68
* Further updates to support final 0-10 specGordon Sim2008-03-041-2/+2
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@633627 13f79535-47bb-0310-9956-ffa450edef68
* Updated tracking of outgoing command id and send command-point control on ↵Gordon Sim2008-03-031-2/+2
| | | | | | session attachment. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@633241 13f79535-47bb-0310-9956-ffa450edef68
* A further step to final 0-10 spec.Gordon Sim2008-03-031-6/+8
| | | | | | | | | The extra.xml fragment adds class defs for connection in session that are in line with latest spec but use old schema. The preview codepath (99-0) remains unaltered. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@633108 13f79535-47bb-0310-9956-ffa450edef68
* Some refactoring of the 0-10 codepath (being migrated to final spec) that ↵Gordon Sim2008-02-251-10/+38
| | | | | | primarily colocates the current session and execution layers to facilitate implementing the new session layer that will now encompass this behaviour. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@630934 13f79535-47bb-0310-9956-ffa450edef68
* Start moving towards final 0-10 spec:Gordon Sim2008-02-211-7/+7
| | | | | | | | | | | | | * marked preview spec as 99-0 to distinguish it from 0-10 (which will now be used for the final version) * modified python client to treat 99-0 as 0-10 for now * modified broker to have two paths for the two different versions: 99-0 uses PreviewConnection, PreviewConnectionHandler and PreviewSessionHandler which are straight copy & pastes of the Connection, ConnectionHandler and SessionHandler now associated with 0-10 (so we can migrate the 0-10 path to the final spec without affecting clients working with the preview version) git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@629883 13f79535-47bb-0310-9956-ffa450edef68
* Cluster code fixed for changes in codebase.Alan Conway2008-02-011-10/+7
| | | | | | | | | | | - Using SessionManager::Observer - Better ais test setup, only need to be member of ais group. - Update cluster_client - SessionState holds handler chains. - Cluster frames include next handler ptr. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@617582 13f79535-47bb-0310-9956-ffa450edef68
* patch-715 (tross)Carl C. Trieloff2008-01-021-1/+10
| | | | git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@608135 13f79535-47bb-0310-9956-ffa450edef68
* Changes to threading: queues serialiser removed, io threads used to drive ↵Gordon Sim2007-11-291-2/+8
| | | | | | | | | | dispatch to consumers Fix to PersistableMessage: use correct lock when accessing synclist, don't hold enqueue lock when notifying queues git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@599395 13f79535-47bb-0310-9956-ffa450edef68
* Change to avoid assertion when delivery is concurrent with session detachment:Gordon Sim2007-11-121-2/+2
| | | | | | | | | | | | * in SessionState::getHandler() doesn't assert and just return pointer * do assertion internally in SessionState where getHandler was relied for this before * in SemanticHandler::deliver() get handler and check it; if null then dump the message and print an error git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@594233 13f79535-47bb-0310-9956-ffa450edef68
* Session resume support in client & broker: Client can resume a sessionAlan Conway2007-10-261-19/+22
| | | | | | | | | | | | | | | | | | | | | | | | | after voluntary suspend() or network failure. Frames lost in network failure are automatically re-transmitted for transparent re-connection. client::Session improvements: - Locking to avoid races between network & user threads. - Replaced client::StateManager with sys::StateMonitor - avoid heap allocation. qpid::Exception clean up: - use QPID_MSG consistently to format exception messages. - throw typed exceptions (in reply_exceptions.h) for AMQP exceptions. - re-throw correct typed exception on client for exceptions from broker. - Removed QpidError.h rubygen/templates/constants.rb: - constants.h: Added FOO_CLASS_ID and FOO_BAR_METHOD_ID constants. - reply_constants.h: Added throwReplyException(code, text) log::Logger: - Fixed shutdown race in Statement::~Initializer() git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@588761 13f79535-47bb-0310-9956-ffa450edef68
* * src/tests/ClientSessionTest.cpp: Suspend/resume tests.Alan Conway2007-09-281-1/+7
| | | | | | | | | | | | | | | * broker/SessionManager.cpp, broker/SessionHandler.cpp: Implement suspend/resume * client/ScopedAssociation.h, SessionCore.h, SessionHandler.h: Simplified relationships. - Removed ScopedAssociation. - SessionHandler: is now a member of SessionCore. - SessionCore: shared_ptr ownership by Session(s) and ConnectionImpl. - Using framing::FrameHandler interfaces. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@580403 13f79535-47bb-0310-9956-ffa450edef68
* 2007-09-24 Alan Conway <aconway@redhat.com>Alan Conway2007-09-241-7/+11
| | | | | | | | | | | | | | | * cpp/src/qpid/broker/SessionManager.cpp: Manage suspended sessions. Replaces SuspendedSessions. * cpp/src/qpid/broker/SessionState.cpp: Work with SessionManager. * cpp/src/qpid/broker/SessionHandler.cpp: Owns SessionState. * cpp/src/qpid/broker/Connection.h, .cpp: Owns session handlers. * cpp/src/qpid/broker/Broker.h: Added SessionManager member. * cpp/src/Makefile.am: Added broker/SessionManager.cpp * amqp.0-10-preview.xml: Added session-busy and channel-busy constants. * cpp/src/tests/.valgrind.supp-default: Added suppresssions for F7. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@578975 13f79535-47bb-0310-9956-ffa450edef68