]
Romain Pelisse reassigned WFLY-6422:
------------------------------------
Assignee: Romain Pelisse
ejb3 subsystem thread-pools default config & xsd misleading
-----------------------------------------------------------
Key: WFLY-6422
URL:
https://issues.jboss.org/browse/WFLY-6422
Project: WildFly
Issue Type: Bug
Components: EJB
Affects Versions: 10.0.0.Final
Reporter: Brad Maxwell
Assignee: Romain Pelisse
keepalive-time should be removed from the default profile configurations standalone*.xml
/ domain.xml as well as the ejb3 docs/schema xsd as the thread pool effectively takes the
max-threads count and sets the core size of the thread pool to it, so keepalive-time is
never used. Also, max-threads is misleading, the thread count is actually the core size
as currently implemented, this causes confusion as if you set max-threads to 300 and you
have at most 1 client, your thread pool will create a new thread upon ever request until
it reaches 300 and thus while it is technically the max, it is also the core or min, or
just # of threads.
{code}
<thread-pools>
<thread-pool name="default">
<max-threads count="10"/>
<keepalive-time time="100"
unit="milliseconds"/>
</thread-pool>
</thread-pools>
{code}
{code}
A thread pool executor with an unbounded queue. Such a thread pool has a
core size and a queue with no
upper bound. When a task is submitted, if the number of running threads
is less than the core size,
a new thread is created. Otherwise, the task is placed in queue. If too
many tasks are allowed to be
submitted to this type of executor, an out of memory condition may
occur.
The "name" attribute is the name of the created executor.
The "max-threads" attribute must be used to specify the thread
pool size. The nested
"keepalive-time" element may used to specify the amount of time
that pool threads should
be kept running when idle; if not specified, threads will run until the
executor is shut down.
The "thread-factory" element specifies the bean name of a
specific threads subsystem thread factory to
use to create worker threads. Usually it will not be set for an EJB3
thread pool and an appropriate
default thread factory will be used.
{code}