activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dejan Bosanac (JIRA)" <>
Subject [jira] [Assigned] (AMQ-3885) ActiveMQ java client doesn't scale to thousands of queues
Date Fri, 20 Jul 2012 12:41:36 GMT


Dejan Bosanac reassigned AMQ-3885:

    Assignee: Dejan Bosanac
> ActiveMQ java client doesn't scale to thousands of queues
> ---------------------------------------------------------
>                 Key: AMQ-3885
>                 URL:
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Connector
>    Affects Versions: 5.6.0
>         Environment: core i7 laptop running win7 64bit with 8gb of ram
>            Reporter: Matan Zruya
>            Assignee: Dejan Bosanac
>              Labels: ActiveMQConnection, TaskRunnerFactory, client, java
> The ActiveMQ broker scales to tens of thousands of queues easily when using -Dorg.apache.activemq.UseDedicatedTaskRunner=false
(false by default).
> A problem actually arises in the java client side, when a client is listening to X queues
using 1 connection and Y sessions per queue, using a JMS message listener, X * Y threads will
be created, when X * Y is not bounded,
> This is because each ActiveMQConnection object holds a TaskRunnerFactory which in turn
has a ThreadPoolExecutor, the max pool size of the executor is defined to be Integer.MAX_VALUE,
with the combination of a SynchronousQueue it creates as many threads as it pleases.
> the behavior of the executor is dependent on min pool size, core pool size, queue impl
and rejection policy 
> a few options to handle this :
> 1. the default rejection policy throws an exception which is not handled,
> ThreadPoolExecutor.CallerRunsPolicy sounds better then the default
> 2. Change the queue impl to LinkedBlockingQueue and change the core pool size to a bounded
> 3. Provide the means to supply an external executor to be shared in the app

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


View raw message