[ 
https://issues.apache.org/jira/browse/AMQ-6184?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gary Tully resolved AMQ-6184.
-----------------------------
       Resolution: Fixed
    Fix Version/s:     (was: 5.14.0)
                   5.15.0

We need the best of both worlds, depending on the use case. The default is a 
SynchronousQueue as before.
I added:{code}
 org.apache.activemq.transport.nio.SelectorManager.workQueueCapacity{code}

when > 0, it will swap out the SynchronousQueue for a capacity limited queue 
with the specified workQueueCapacity

In this way, a limited pool (one that is at maximumPoolSize) can queue up some 
work before getting rejected and falling back to use the calling thread.


> Improve nio transport scalability
> ---------------------------------
>
>                 Key: AMQ-6184
>                 URL: https://issues.apache.org/jira/browse/AMQ-6184
>             Project: ActiveMQ
>          Issue Type: Improvement
>    Affects Versions: 5.13.0
>            Reporter: Dejan Bosanac
>            Assignee: Gary Tully
>             Fix For: 5.15.0
>
>
> NIO transport uses unbounded thread pool executor to handle read operation. 
> Under large number of connections and load, this could lead to large number 
> of threads and eventually OOM errors. Which is the exact problem that nio 
> transport is supposed to solve. Some work has been done in [AMQ-5480], to 
> make this configurable, but there's still more work to make it more robust. 
> Creating a fixed thread pool with a queue in front gives much better results 
> in my tests.
> Additionally, the same thread pool is used for accepting connections 
> ([AMQ-5269]). This can lead to the broker not being able to accept new 
> connections under the load. I got much better results when experimenting with 
> implementing acceptor logic directly and handling it in the same thread 
> (without reintroducing the old problem). 
> With these two improvements in place, the broker accept and handle the number 
> of connections up to the system limits.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to