<p>They support the following additional attributes (in addition to the
common attributes listed above):</p>
+ <p>The BIO and APR/native implementations (there is no NIO implementation for
+ APR) both support the following additional attributes in addition to the
+ standard Connector attributes listed above:</p>
+
<attributes>
+ <attribute name="acceptCount" required="false">
+ <p>The maximum queue length for incoming connection requests when
+ all possible request processing threads are in use. Any requests
+ received when the queue is full will be refused. The default
+ value is 100.</p>
+ </attribute>
+
+ <attribute name="acceptorThreadCount" required="false">
+ <p>The number of threads to be used to accept connections. Increase this
+ value on a multi CPU machine, although you would never really need more
+ than <code>2</code>. Also, with a lot of non keep alive connections, you
+ might want to increase this value as well. Default value is
+ <code>1</code>.</p>
+ </attribute>
+
<attribute name="address" required="false">
<p>For servers with more than one IP address, this attribute
specifies which address will be used for listening on the specified
interface.</p>
</attribute>
- <attribute name="backlog" required="false">
- <p>The maximum queue length for incoming connection requests when
- all possible request processing threads are in use. Any requests
- received when the queue is full will be refused. The default
- value is 100.</p>
- </attribute>
-
- <attribute name="bufferSize" required="false">
- <p>The size of the output buffer to use. If less than or equal to zero,
- then output buffering is disabled. The default value is -1
- (i.e. buffering disabled)</p>
+ <attribute name="connectionLinger" required="false">
+ <p>The number of milliseconds during which the sockets used by this
+ <strong>Connector</strong> will linger when they are closed.
+ The default value <code>-1</code> which disables this option.</p>
</attribute>
<attribute name="connectionTimeout" required="false">
<p>The number of milliseconds this <strong>Connector</strong> will wait,
after accepting a connection, for the request URI line to be
- presented. The default value is infinite (i.e. no timeout).</p>
+ presented. The default value is 60000 (i.e. 60 seconds).</p>
</attribute>
<attribute name="executor" required="false">
- <p>A reference to the name in an <a href="executor.html">Executor</a> element.
- If this attribute is enabled, and the named executor exists, the connector will
- use the executor, and all the other thread attributes will be ignored.</p>
+ <p>A reference to the name in an <a href="executor.html">Executor</a>
+ element. If this attribute is set, and the named executor exists, the
+ connector will use the executor, and all the other thread attributes will
+ be ignored. Note that if a shared executor is not specified for a
+ connector then the connector will use a private, internal executor to
+ provide the thread pool.</p>
</attribute>
<attribute name="keepAliveTimeout" required="false">
execute tasks using the executor rather than an internal thread pool.</p>
</attribute>
+ <attribute name="minSpareThreads" required="false">
+ <p>The minimum number of threads always kept running. If not specified,
+ the default of <code>10</code> is used.</p>
+ </attribute>
+
<attribute name="packetSize" required="false">
<p>This attribute sets the maximum AJP packet size in Bytes. The maximum
value is 65536. It should be the same as the <code>max_packet_size</code>
value is 8192.</p>
</attribute>
- <attribute name="request.secret" required="false">
+ <attribute name="processorCache" required="false">
+ <p>The protocol handler caches Processor objects to speed up performance.
+ This setting dictates how many of these objects get cached.
+ <code>-1</code> means unlimited, default is <code>200</code>. Set this
+ value somewhere close to your maxThreads value.</p>
+ </attribute>
+
+ <attribute name="requiredSecret" required="false">
<p>Only requests from workers with this secret keyword will be accepted.
</p>
</attribute>
- <attribute name="request.shutdownEnabled" required="false">
- <p>If true and a secret has been configured, a correctly formatted AJP
- request (that includes the secret) will shutdown the Tomcat instance
- associated with this connector. This is set to <code>false</code> by
- default.</p>
- </attribute>
-
- <attribute name="request.useSecret" required="false">
- <p>If set to <code>true</code>, then a random value for
- <code>request.secret</code> will be generated. It is for use with
- <code>request.shutdownEnabled</code>. This is set to <code>false</code>
- by default.</p>
- </attribute>
-
<attribute name="tcpNoDelay" required="false">
<p>If set to <code>true</code>, the TCP_NO_DELAY option will be
set on the server socket, which improves performance under most
circumstances. This is set to <code>true</code> by default.</p>
</attribute>
+ <attribute name="threadPriority" required="false">
+ <p>The priority of the request processing threads within the JVM.
+ The default value is <code>java.lang.Thread#NORM_PRIORITY</code>.
+ See the JavaDoc for the java.lang.Thread class for more details on
+ what this priority means.
+ </p>
+ </attribute>
+
<attribute name="tomcatAuthentication" required="false">
<p>If set to <code>true</code>, the authentication will be done in Tomcat.
Otherwise, the authenticated principal will be propagated from the native
</subsection>
+ <subsection name="BIO specific configuration">
+
+ <p>The BIO implementation supports the following Java TCP socket attributes
+ in addition to the common Connector and AJP attributes listed above.</p>
+
+ <attributes>
+ <attribute name="socket.rxBufSize" required="false">
+ <p>(int)The socket receive buffer (SO_RCVBUF) size in bytes. JVM default
+ used if not set.</p>
+ </attribute>
+ <attribute name="socket.txBufSize" required="false">
+ <p>(int)The socket send buffer (SO_SNDBUF) size in bytes. JVM default
+ used if not set.</p>
+ </attribute>
+ <attribute name="socket.tcpNoDelay" required="false">
+ <p>(bool)This is equivalent to standard attribute
+ <strong>tcpNoDelay</strong>.</p>
+ </attribute>
+ <attribute name="socket.soKeepAlive" required="false">
+ <p>(bool)Boolean value for the socket's keep alive setting
+ (SO_KEEPALIVE). JVM default used if not set.</p>
+ </attribute>
+ <attribute name="socket.ooBInline" required="false">
+ <p>(bool)Boolean value for the socket OOBINLINE setting. JVM default
+ used if not set.</p>
+ </attribute>
+ <attribute name="socket.soReuseAddress" required="false">
+ <p>(bool)Boolean value for the sockets reuse address option
+ (SO_REUSEADDR). JVM default used if not set.</p>
+ </attribute>
+ <attribute name="socket.soLingerOn" required="false">
+ <p>(bool)Boolean value for the sockets so linger option (SO_LINGER).
+ A value for the standard attribute <strong>connectionLinger</strong>
+ that is >=0 is equivalent to setting this to <code>true</code>.
+ A value for the standard attribute <strong>connectionLinger</strong>
+ that is <0 is equivalent to setting this to <code>false</code>.
+ Both this attribute and <code>soLingerTime</code> must be set else the
+ JVM defaults will be used for both.</p>
+ </attribute>
+ <attribute name="socket.soLingerTime" required="false">
+ <p>(int)Value in seconds for the sockets so linger option (SO_LINGER).
+ This is equivalent to standard attribute
+ <strong>connectionLinger</strong>.
+ Both this attribute and <code>soLingerOn</code> must be set else the
+ JVM defaults will be used for both.</p>
+ </attribute>
+ <attribute name="socket.soTimeout" required="false">
+ <p>This is equivalent to standard attribute
+ <strong>connectionTimeout</strong>.</p>
+ </attribute>
+ <attribute name="socket.soTrafficClass" required="false">
+ <p>(byte)Value between <code>0</code> and <code>255</code> for the
+ traffic class on the socket. JVM default used if not set.</p>
+ <p><strong>Note</strong>On some JDK versions, setting
+ <strong>soTrafficClass</strong> causes a problem. A work around for this
+ is to add the <code>-Djava.net.preferIPv4Stack=true</code> value to your
+ JVM options.</p>
+ </attribute>
+ <attribute name="socket.performanceConnectionTime" required="false">
+ <p>(int)The first value for the performance settings. See
+ <a href="http://java.sun.com/j2se/1.6.0/docs/api/java/net/Socket.html#setPerformancePreferences(int,%20int,%20int)">Socket Performance Options</a>
+ All three performance attributes must be set else the JVM defaults will
+ be used for all three.</p>
+ </attribute>
+ <attribute name="socket.performanceLatency" required="false">
+ <p>(int)The second value for the performance settings. See
+ <a href="http://java.sun.com/j2se/1.6.0/docs/api/java/net/Socket.html#setPerformancePreferences(int,%20int,%20int)">Socket Performance Options</a>
+ All three performance attributes must be set else the JVM defaults will
+ be used for all three.</p>
+ </attribute>
+ <attribute name="socket.performanceBandwidth" required="false">
+ <p>(int)The third value for the performance settings. See
+ <a href="http://java.sun.com/j2se/1.6.0/docs/api/java/net/Socket.html#setPerformancePreferences(int,%20int,%20int)">Socket Performance Options</a>
+ All three performance attributes must be set else the JVM defaults will
+ be used for all three.</p>
+ </attribute>
+ <attribute name="socket.unlockTimeout" required="false">
+ <p>(int) The timeout for a socket unlock. When a connector is stopped, it will try to release the acceptor thread by opening a connector to itself.
+ The default value is <code>250</code> and the value is in milliseconds</p>
+ </attribute>
+ </attributes>
+ </subsection>
+
+ <subsection name="APR/native specific configuration">
+
+ <p>The APR/native implementation supports the following attributes in
+ addition to the common Connector and AJP attributes listed above.</p>
+
+ <attributes>
+ <attribute name="pollTime" required="false">
+ <p>Duration of a poll call. Lowering this value will slightly decrease
+ latency of connections being kept alive in some cases, but will use more
+ CPU as more poll calls are being made. The default value is 2000 (2ms).
+ </p>
+ </attribute>
+
+ <attribute name="pollerSize" required="false">
+ <p>Amount of sockets that the poller responsible for polling kept alive
+ connections can hold at a given time. Extra connections will be closed
+ right away. The default value is 8192, corresponding to 8192 keep-alive
+ connections.</p>
+ </attribute>
+
+ </attributes>
+
+ </subsection>
+
</section>
</section>
+<section name="Special Features">
+
+ <subsection name="Proxy Support">
+
+ <p>The <code>proxyName</code> and <code>proxyPort</code> attributes can
+ be used when Tomcat is run behind a proxy server. These attributes
+ modify the values returned to web applications that call the
+ <code>request.getServerName()</code> and <code>request.getServerPort()</code>
+ methods, which are often used to construct absolute URLs for redirects.
+ Without configuring these attributes, the values returned would reflect
+ the server name and port on which the connection from the proxy server
+ was received, rather than the server name and port to whom the client
+ directed the original request.</p>
+
+ <p>For more information, see the
+ <a href="../proxy-howto.html">Proxy Support HOW-TO</a>.</p>
+
+ </subsection>
+
+</section>
</body>