| <?xml version="1.0" encoding="UTF-8"?> |
| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one or more |
| contributor license agreements. See the NOTICE file distributed with |
| this work for additional information regarding copyright ownership. |
| The ASF licenses this file to You under the Apache License, Version 2.0 |
| (the "License"); you may not use this file except in compliance with |
| the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| <!DOCTYPE document [ |
| <!ENTITY project SYSTEM "project.xml"> |
| ]> |
| <document url="executor.html"> |
| |
| &project; |
| |
| <properties> |
| <author email="fhanik@apache.org">Filip Hanik</author> |
| <title>The Executor (thread pool)</title> |
| </properties> |
| |
| <body> |
| |
| <section name="Table of Contents"> |
| <toc/> |
| </section> |
| |
| <section name="Introduction"> |
| |
| <p>The <strong>Executor</strong> represents a thread pool that can be shared |
| between components in Tomcat. Historically there has been a thread pool per |
| connector created but this allows you to share a thread pool, between (primarly) connector |
| but also other components when those get configured to support executors</p> |
| |
| |
| <p>The executor has to implement the <code>org.apache.catalina.Executor</code> interface.</p> |
| |
| <p>The executor is a nested element to the <a href="service.html">Service</a> element. |
| And in order for it to be picked up by the connectors, the Executor element has to appear |
| prior to the Connector element in server.xml</p> |
| </section> |
| |
| |
| <section name="Attributes"> |
| |
| <subsection name="Common Attributes"> |
| |
| <p>All implementations of <strong>Executor</strong> |
| support the following attributes:</p> |
| |
| <attributes> |
| |
| <attribute name="className" required="false"> |
| <p>The class of the implementation. The implementation has to implement the |
| <code>org.apache.catalina.Executor</code> interface. |
| This interface ensures that the object can be referenced through its <code>name</code> attribute |
| and that implements Lifecycle, so that it can be started and stopped with the container. |
| The default value for the className is <code>org.apache.catalina.core.StandardThreadExecutor</code></p> |
| </attribute> |
| |
| <attribute name="name" required="true"> |
| <p>The name used to reference this pool in other places in server.xml. |
| The name is required and must be unique.</p> |
| </attribute> |
| |
| </attributes> |
| |
| </subsection> |
| |
| <subsection name="Standard Implementation"> |
| |
| <p> |
| The default implementation supports the following attributes:</p> |
| |
| <attributes> |
| |
| <attribute name="threadPriority" required="false"> |
| <p>(int) The thread priority for threads in the executor, the default is |
| <code>5</code> (the value of the <code>Thread.NORM_PRIORITY</code> constant)</p> |
| </attribute> |
| <attribute name="daemon" required="false"> |
| <p>(boolean) Whether the threads should be daemon threads or not, the default is <code>true</code></p> |
| </attribute> |
| <attribute name="namePrefix" required="false"> |
| <p>(String) The name prefix for each thread created by the executor. |
| The thread name for an individual thread will be <code>namePrefix+threadNumber</code></p> |
| </attribute> |
| <attribute name="maxThreads" required="false"> |
| <p>(int) The max number of active threads in this pool, default is <code>200</code></p> |
| </attribute> |
| <attribute name="minSpareThreads" required="false"> |
| <p>(int) The minimum number of threads always kept alive, default is <code>25</code></p> |
| </attribute> |
| <attribute name="maxIdleTime" required="false"> |
| <p>(int) The number of milliseconds before an idle thread shutsdown, unless the number of active threads are less |
| or equal to minSpareThreads. Default value is <code>60000</code>(1 minute)</p> |
| </attribute> |
| <attribute name="maxQueueSize" required="false"> |
| <p>(int) The maximum number of runnable tasks that can queue up awaiting |
| execution before we reject them. Default value is <code>Integer.MAX_VALUE</code></p> |
| </attribute> |
| <attribute name="prestartminSpareThreads" required="false"> |
| <p>(boolean) Whether minSpareThreads should be started when starting the Executor or not, |
| the default is <code>false</code></p> |
| </attribute> |
| <attribute name="threadRenewalDelay" required="false"> |
| <p>(long) If a <a href="listeners.html">ThreadLocalLeakPreventionListener</a> is configured, |
| it will notify this executor about stopped contexts. |
| After a context is stopped, threads in the pool are renewed. To avoid renewing all threads at the same time, |
| this option sets a delay between renewal of any 2 threads. The value is in ms, |
| default value is <code>1000</code> ms. If value is negative, threads are not renewed.</p> |
| </attribute> |
| </attributes> |
| |
| |
| </subsection> |
| </section> |
| |
| |
| </body> |
| |
| </document> |