activemq-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Glaucio Melo (JIRA)" <>
Subject [jira] [Commented] (ARTEMIS-312) Artemis clients use by default an unbounded global thread pool
Date Thu, 10 Dec 2015 15:33:11 GMT


Glaucio Melo commented on ARTEMIS-312:

Hi Justin, thanks for your comments. Yes, I did read this documentation link, right after
we found what was happening with our platform :)

Despite we are currently on hold due to a few other reasons, with this globalPools as true
as default value, our platform was up and running just for a few minutes before crash (around
8 minutes). Also, due to time-management perspective, unfortunately this behaviour had caused
a biased impression about Artemis at all. 

I know most of java frameworks need to be opened for configuration, but my point here isn't
exactly on *where to change* or *where to read about*, but let as default a configuration
which gives a room for dangerous consequences.

Nevertheless, I'm pretty sure that's not everybody that would be available to read all the
documentation and details (and I spent a lot of time doing that), and I know there is a disclaimer
from my part on not trying harder on make it work properly - but in my vision, set a wide-opened-unrealistic
configuration as default is error-prone for any framework which has intent to be prepared
to go in production.



> Artemis clients use by default an unbounded global thread pool
> --------------------------------------------------------------
>                 Key: ARTEMIS-312
>                 URL:
>             Project: ActiveMQ Artemis
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 1.1.0
>            Reporter: Jeff Mesnil
>            Assignee: Justin Bertram
> While investigating some performance issues, we noticed that Artemis clients (including
MDBs) use by default a "global" pool by creating a cached thread pool with 0 core pool size,
Integer.MAX_VALUE max size and 60s keep alive.
> This default global pool looks misconfigured. If a Artemis clients has a lot of activity
it is actually possible that threads are deleted from the pool and added back.
> Related to this, Artemis defines a threadPoolMaxSize attribute if the client is not using
a global pool. But the property does not seem to be well name.
> If the Artemis client is using a "non-global" pool, this property is used to create a
newFixedThreadPool. So this property defines the actual size of the pool, not a max size.
> As a comparison, the "global" scheduled thread is instantiating with a 5 core pool size.

This message was sent by Atlassian JIRA

View raw message