[ https://issues.apache.org/activemq/browse/AMQ-999?page=all ]
Rob Lugt updated AMQ-999:
-------------------------
Attachment: DispatchingThread.cs
New class: DispatchingThread. This is a worker thread attached to a session, which has responsibility
for asynchronous dispatching of inbound messages to all consumers for the session.
> Message dispatcher issues (use dedicated dispatching thread for each session)
> -----------------------------------------------------------------------------
>
> Key: AMQ-999
> URL: https://issues.apache.org/activemq/browse/AMQ-999
> Project: ActiveMQ
> Issue Type: Improvement
> Components: NMS (C# client)
> Affects Versions: 4.0.2
> Environment: Windows
> Reporter: Rob Lugt
> Assigned To: Rob Lugt
> Attachments: AtomicBoolean.cs, DispatchingThread.cs
>
>
> There are a number of issues with the dispatching of inbound messages.
> - A slow consumer will potentially use and block all ThreadPool threads
> - Use of a ThreadPool thread to dispatch a single message is inefficient due to context
switching
> - No mechanism to suspend asynchronous delivery to a session (i.e. Connection.Stop()
is currently a no-op)
> - Retroactive consumer is currently broken because retoractive messages are delivered
before the listener delegate is assigned.
> - [minor] Application cannot predict which thread messages will be dispatched on
> All of these problems can simply be resolved by creating a dedicated dispatcher thread
for a session
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/activemq/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
|