Hello Romain,

Thanks a lot for your answers :-)

Any rule for matching the threading of Tomcat and the number of beans, which is 
global, right ? in the pool of TomEE.
According to me it is quite complicated to handle. We should have something 
like:
         - UseCase 1 involves EJB A, B and C using at most 10 concurrent 
requests
         - UseCase 2 involves EJB D, E using at most 20 concurrent requests
This means that we should set the MaxThread to 30 (20+10) and the number of 
beans in the pool to: 30 (3 beans*10 req) + 40 (2 beans*20req)=70 beans in the 
pool
Am I right ?

Regarding " The thread is needed too early to do it I fear but I'm sure you can 
"rephrase" it to enable your use case."
The use case is that we had a situation where all threads were blocked due to 
an application issue and we still wanted to monitor our application using REST 
calls but we
can't because all the Thread Pool has been consumed.
We found a workaround by having added a new Connector using a different port in 
server.xml but, according to me, it is not a safe situation because you may use 
this new port
again to run applicative requests even if we know that our system is in a bad 
shape regarding resource allocation !  This is why I was thinking that having a 
dedicated thread pool per URI
could be a smarter solution.

Best Regards.

-----Original Message-----
From: Romain Manni-Bucau [mailto:[email protected]]
Sent: vendredi 2 juin 2017 18:02
To: [email protected]
Subject: Re: Assigning different thread pool for different URL/URI

Hi François,

it is more tomcat questions but let's try to help on them inline


Romain Manni-Bucau
@rmannibucau <https://twitter.com/rmannibucau> |  Blog 
<https://blog-rmannibucau.rhcloud.com> | Old Blog 
<http://rmannibucau.wordpress.com> | Github <https://github.com/rmannibucau> | 
LinkedIn <https://www.linkedin.com/in/rmannibucau> | JavaEE Factory 
<https://javaeefactory-rmannibucau.rhcloud.com>

2017-06-02 17:49 GMT+02:00 COURTAULT Francois <
[email protected]>:

> Hello everyone,
>
> I have read some TomEE/Tomcat documentations about thread pool settings.
> Let me first explain my understanding in order to see if this one is
> right or wrong:
>       - With the default TomEE configuration: there is a default limit
> (200) for getting more thread if we don't set the maxThread , right ?
>

yes, defaults are in org.apache.catalina.core.StandardThreadExecutor:

protected int maxThreads = 200;



>       - Thread pool management is only managed at Connector level, right ?
>

For http requests yes but as TomEE you also have concurrency utilities, ejb 
pools, etc...


>       - We may assign a dedicated thread pool for a Connector using an
> Executor, right ?
>

yes by "reference" (name)


>
> The goal I want to reach: have a dedicated thread pool per URI or a
> set of URIs.
>

This is not easy by default but if you delegate the job in another pool (app 
pool) and use async context you dont need to do it at tomcat level but you can 
control it at app level.


> Is it possible using some TomEE configuration to set a dedicated
> thread pool per URI (I don't think so but want to check) ?
>

The thread is needed too early to do it I fear but I'm sure you can "rephrase" 
it to enable your use case.


>
> One more question: when the thread max  + acceptCount is reached, does
> TomEE return 503 ?
>

Hmm, acceptCount is the queue for the socket (like in plain C) - it is actually 
"backlog" in the code. It is platform dependent often - dont know if it got 
sanitized recently  :(. So it is not guaranteed AFAIK.

I'm tempted to say you can give it a try putting low value you should reproduce 
it easily - would recommand to test on the samle platform than your prod for 
the mentionned reason ^^ :).


>
> Best Regards.
>
>
>
> ________________________________
>  This message and any attachments are intended solely for the
> addressees and may contain confidential information. Any unauthorized
> use or disclosure, either whole or partial, is prohibited.
> E-mails are susceptible to alteration. Our company shall not be liable
> for the message if altered, changed or falsified. If you are not the
> intended recipient of this message, please delete it and notify the sender.
> Although all reasonable efforts have been made to keep this
> transmission free from viruses, the sender will not be liable for
> damages caused by a transmitted virus.
>
________________________________
 This message and any attachments are intended solely for the addressees and 
may contain confidential information. Any unauthorized use or disclosure, 
either whole or partial, is prohibited.
E-mails are susceptible to alteration. Our company shall not be liable for the 
message if altered, changed or falsified. If you are not the intended recipient 
of this message, please delete it and notify the sender.
Although all reasonable efforts have been made to keep this transmission free 
from viruses, the sender will not be liable for damages caused by a transmitted 
virus.

Reply via email to