Hi,

I am running Apache Tomcat 9.0.97 on Windows Server 2022.  I’m running Oracle 
JDK 1.8.0_371-b11 with a 4GB min heap and a 16GB max heap.

I have an application deployed on this server that is hitting an Oracle 
database server.  I have noticed the server stops accepting requests after 
about 8-12 hours of uptime.  In JProfiler you can tell when this is about to 
happen because 20 of the 150 NIO threads BRIEFLY…BRIEFLY go into a blocked 
state while querying the database.  After this situation clears up, the NIO 
thread pool grows slightly by about 15-20 threads, and then the application 
server stops serving requests.

I looked at the GC log, and it looks completely healthy, and we are not even 
close to our max heap.  Metaspace size is not configured, but it looks fine 
from the GC logs.  There is no crash file or core dump produced.

I do notice some Oracle exceptions in the logs when this happens.  We do have 
about 1000 max connections defined on the Oracle database (which is too many).

I have my thread pool defined as follows in server.xml:

…
     <Executor name="tomcatThreadPool"
          namePrefix="catalina-exec-"
          maxThreads="1000"
          minSpareThreads="50"
          maxIdleTime="60000"
          maxQueueSize="1000" />

     <Connector port="8080"
           protocol="org.apache.coyote.http11.Http11NioProtocol"
           connectionTimeout="130000"
           redirectPort="8443"
           disableUploadTimeout="false"
           acceptCount="1000"
           maxConnections="1000"
           executor="tomcatThreadPool" />
…

Are there any logs I can enable to find out why the application server stops 
accepting connections?

Regards,

William Crowell


This e-mail may contain information that is privileged or confidential. If you 
are not the intended recipient, please delete the e-mail and any attachments 
and notify us immediately.

Reply via email to