activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Matan Zruya (JIRA)" <>
Subject [jira] [Created] (AMQ-3885) ActiveMQ java client doesn't scale to thousands of queues
Date Sun, 17 Jun 2012 13:01:42 GMT
Matan Zruya created AMQ-3885:

             Summary: ActiveMQ java client doesn't scale to thousands of queues
                 Key: AMQ-3885
             Project: ActiveMQ
          Issue Type: Bug
          Components: Connector
    Affects Versions: 5.6.0
         Environment: HP Elitebook running win7 with 8gb of ram
            Reporter: Matan Zruya

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.

Shouldn't this number be bounded with a reasonable value ? (~200 or a constructor passed value)
where if more concurrency is necessary, the work could be distributed across more connections...

The ideal solution would be if multiple ActiveMQConnection objects could share a common TaskExecutor.

But i feel like the minimum would be limiting the executor so the OS doesn't halt completely
because of context switches.

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