Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-6422

ejb3 subsystem thread-pools default config & xsd misleading



    • Bug
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Done
    • 10.0.0.Final
    • 11.0.0.Alpha1
    • EJB
    • None


      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.

                      <thread-pool name="default">
                          <max-threads count="10"/>
                          <keepalive-time time="100" unit="milliseconds"/>
                      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.


        Issue Links



              rpelisse@redhat.com Romain Pelisse
              rhn-support-bmaxwell Brad Maxwell
              0 Vote for this issue
              2 Start watching this issue