Mark,

On 4/6/18 8:20 AM, Mark Thomas wrote:
> On 04/04/18 18:31, Christopher Schultz wrote:
>> Mark,
>>
>> On 4/4/18 9:52 AM, Mark Thomas wrote:
>>> On 04/04/18 14:29, Christopher Schultz wrote:
>>>> All,
>>>>
>>>> I'm running 8.5.29 and I'm looking at the manager application, 
>>>> specifically at the Connectors list on the "Server Status" page.
>>>>
>>>> I have two connectors:
>>>>
>>>> 1. ajp-nio-8215
>>>>
>>>> 2. http-nio-127.0.0.1-8217
>>>>
>>>> The server is idle (it's my own desktop) and I loaded the Server 
>>>> Status page over the HTTP connector. However, both connectors say
>>>> that the "Current thread busy" count is "1". Why is the AJP
>>>> connector "using" a thread? It should be doing nothing, right?
>>
>>> I don't see this on a clean install.
>>
>>> I do see this if I configure both the AJP and HTTP connector to use
>>> a shared executor. In this case, the thread stats reported are for
>>> the executor.
>>
>> Right, because none of the Connectors in the default configuration use
>> an Executor.
>>
>> But what about the "1 thread always being used" thing?
> 
> That is the current request that generated the page you are looking at.

I have two connectors. I'm only connecting over a single connector.
Because there is an <Executor>, I know it's only one thread. But the
display makes it look like two threads are being used. Let's say I had
10 connectors and there were 10 in-flight requests. Looking at the
Server Status page, I could easily come to the wrong conclusion that 100
threads were in use.

I think we might want to change that. Even by saying "this connector is
using an executor called <foo> which may be shared with other
connectors" and not changing anything else would be an improvement.

I understand what's happening, and even I was confused by what I saw.

>>>> Another odd thing is that the connector says the "Max Threads" is
>>>> -1. That may be true for the connector itself because I'm using
>>>> an Executor. But the executor does have a thread-limit and that's
>>>> not being shown.
>>>>
>>>> The current thread count and current thread busy counts are sane 
>>>> values, so those must be coming from the Executor. Why not the
>>>> "max threads" value?
>>
>>> That would need some svn archaeology. From memory there have been
>>> some changes around this area over the years as various edge cases
>>> emerge.
>>
>>> Ah. And there you have the answer: 
>>> https://bz.apache.org/bugzilla/show_bug.cgi?id=60319
>>
>>> Because the Connector and Executor have separate attributes for 
>>> maxThreads, minSpareThreads and threadPriority the getters and
>>> setters were providing inconsistent / misleading values. Returning
>>> -1 was an attempt to indicate that the attribute was not being used
>>> and that you should look elsewhere for the value.
>>
>>> The dynamic stats (current thread-pool size, active threads, etc.)
>>> can be provided in a consistent manner so don;t need this
>>> treatment.
>>
>> That's what I figured, but there is no information about Executors in
>> the manager.
>>
>> Would it be better to introduce more information about Executors in
>> the Manager, or to change the Manager to show the Executor information
>> when one is in use?
> 
> My preference would be for more information and less 'magic'.

Okay. I'll file an enhancement request and see if anyone wants to
volunteer. Seems like an advanced-beginner enhancement to me.

-chris

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to