| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Moved BrokerChannel functionality into Session.
- Moved ChannelHandler methods handling into SessionAdapter.
- Updated all handlers to use session.
(We're still using AMQP channel methods in SessionAdapter)
Roles & responsibilities:
Session:
- represents an _open_ session, may be active or suspended.
- ows all session state including handler chains.
- attahced to SessionAdapter when active, not when suspended.
SessionAdapter:
- reprents the association of a channel with a session.
- owned by Connection, kept in the session map.
- channel open == SessionAdapter.getSessio() != 0
Anything that depends on attachment to a channel, connection or
protocol should be in SessionAdpater. Anything that suvives a
session suspend belongs in Session.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@571575 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
| |
* Fixed up the test for buffer changes
* Removed unused buffer operations
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@571529 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
| |
message in the queue which is need to handle rlease and acquire.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@571518 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
| |
messages.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@571491 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@571410 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@571367 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@571347 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
| |
AMQBrokerManagerMBeanTest
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@571277 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
| |
- Update ClassifierHandler to use Visitor rather than map.
- Replace heap allocation in cluster classes with boost::optional.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@571246 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
| |
* src/qpid/framing/Handler.h: Add missing default constructor.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@571161 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Testing done in Intelij and mvn command line via windows/cygwin.
Python tests removed from auto build pending Jython-siztion. Tested running broker in intelij and python run-tests from cygwin.
All tests pass. (CombinedTest still exhibts a race condition. but that has always been so.)
Additional Race condition identified (around MsgReject/AutoDeleteQueues) during testing patch to follow.
systests are inconsistent Some use TestableMemoryMessageStore some use MemoryMessgaeStore.
Lets not roll back this change if issues are discovered. Lets work together to go forward and address any issues. I have spent a lot of time ensuring the tests work for me so I hope that they work for you.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@571129 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
including
handlers created for that session. Session is not directly associated with a channel.
* src/qpid/broker/SessionAdapter.h, .cpp: SessionAdapter is bound to a channel
managed by the Connection. It can be attached to and detatched from a Session.
* src/qpid/broker/Connection.cpp, .h: Use SessionAdapter.
* src/qpid/framing/Handler.h: Removed use of shared_ptr. Handlers belong
either to a Session or a Connection and are destroyed with it.
* src/qpid/framing/InputHandler.h, OutputHandler.h: Both now inherit from
FrameHandler and can be used as FrameHandlers. Intermediate step to removing
them entirely.
* src/qpid/broker/ConnectionAdapter.h:
* src/qpid/client/ConnectionHandler.h:
* src/qpid/framing/ChannelAdapter.cpp, .h:
Minor changes required by Handler changes.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@570982 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@570855 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
| |
* rubygen/templates/structs.rb: Use class Uuid for AMQP uuids.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@570595 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@570540 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
|
| |
(including new structs).
Unified more between the basic and message classes messages.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@570538 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@570502 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@570252 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@570251 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@570243 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A visitor for all concrete frame body types.
* src/qpid/broker/SessionState.h: 3 states - closed, active, suspended.
* src/qpid/broker/SessionAdapter.h, .cpp: Session handler, implements
session class commands. In progres..
* rubygen/templates/MethodBodyDefaultVisitor.rb:
A visitor for all method body types.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@570236 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@570165 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
| |
* src/qpid/broker/SuspendedSessions.h, .cpp: Stores suspended sessions.
* src/tests/Session.cpp: Test session classes.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@570164 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@570152 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Visitor for all concrete frame body types.
Override to handle specific bodies (methods or header/content)
and provide default handling for others.
* rubygen/MethodBodyDefaultVisitor.rb:
Visitor for MethodBodies with visit functions that call
virtual defaultVisit(). Override to handle specific methods
and give default behavior for others.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@570121 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
| |
* rubygen/amqpgen.rb: Removed unnecessary sorting.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@570111 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Added nodes for all amqp.xml elements except doc, assert and
rule. (They can easily be added.) In particular AmqpDomain
is a proper node, providing a place to do type mapping.
Every node has reader methods for AMQP attributes/elements:
- attr() for each AMQP attribute "attr" returns the string value.
- foos() returns AmqpElements for all the "foo" children.
- foo(name) returns AmqpElements for the named "foo" child
domain() returns an AmqpDomain rather than the string name.
Method names that would clash with Object methods get a trailing "_"
So: class_/classes, method_/methods_, type_/types
Notes:
- no amqp_ prefixes.
- AmqpElement does not inherit REXML::Element,
AmqpElement#xml() to get the REXML element.
Performance: all templates run in 2.8 seconds on my laptop,
compared to almost two minutes previously. Main change was to
replace xpath searches with simple descent of the Amqp model
and cache values selectively based on profiling.
* rubygen/cppgen.rb:
- Updated for amqpgen changes.
- Introduced CppType to manage C++ type information
- Moved all type mapping to CppType/AmqpDomain
Some templates still do their own type calculations, these
should be centralized in CppType so they can be re-used.
* rubygen/templates/*: Updated for new API
* src/qpid/framing/amqp_types_full.h: Added Uuid.h
* xml/cluster.xml: change "type" attribute to "domain"
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@570096 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@569695 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@569691 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@569689 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Here is the deadlock issue
---------------------------
The internal receive thread acquires the _incomingMessageLock and blocks on sync()
The MINA thread gets on to onMessage() and blocks while trying to acquire the incomingMessageLock
Since the MINA thread doesn't return it can't process the execution.complete() sent by the broker.
Since the execution.complete doesn't get processed, the sync() doesn't return.
Hence the deadlock.
Solution
----------
I rewrote the receive logic using a LinkedBlockingQueue and leveraging the application thread that calls receive methods
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@569688 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@569547 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
| |
* configure.ac: Fixed problem with openais check.
* src/tests/test_env: Remove LD_PRELOAD dlclose_noop, only for CppUnit.
* src/tests/run-unit-tests: Added LD_PRELOAD dlclose_noop.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@569520 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
| |
It looks like this file was accidently deleted.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@569480 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@569431 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@569429 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@569414 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1) TopicImpl doesn't populate the routing key properly.
The Destination Impl needs to have a routing key field (I added the
field).
For Topic The queue name is generated.
For Queue the routingkey is same as queue name.
2) QpidMessage - Calling flip on messageData resets the limit to zero in
beforeMessageDispatch(). I commented out the flip()
3) QpidMessage - setMessageData
Instead of _messageData = messageBody, I modified it to do
_messageData = messageBody.duplicate();
4) MessageActorId is not set properly - so I modified the code to set
this. This id is used for the destination
5) When creating BytesMessageImpl, in the constructor, it doesn't read from the underlying
message impl. There for the _readIn is null and results in MessageNotReadableException.
I added a temp solution to read and populate _readIn.
However need to revisit it later
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@569238 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@569136 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@569134 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@569045 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@568973 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@568954 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@568952 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@568951 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@568950 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
|
|
|
|
|
|
| |
They have been removed from the spec.
* cpp/src/tests/Cluster.cpp, Cluster_child.cpp:
Removed use of SessionPing/PongBody.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@568732 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@568726 13f79535-47bb-0310-9956-ffa450edef68
|
| |
|
|
| |
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@568607 13f79535-47bb-0310-9956-ffa450edef68
|