131 lines
5.2 KiB
XML
131 lines
5.2 KiB
XML
<?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 (primarily) 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 (idle and active) 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>
|