552 lines
		
	
	
		
			45 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
		
		
			
		
	
	
			552 lines
		
	
	
		
			45 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| 
								 | 
							
								<html><head><META http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><title>Apache Tomcat Configuration Reference - The HTTP Connector</title><meta name="author" value="Craig R. McClanahan"><meta name="email" value="craigmcc@apache.org"><meta name="author" value="Yoav Shapira"><meta name="email" value="yoavs@apache.org"></head><body bgcolor="#ffffff" text="#000000" link="#525D76" alink="#525D76" vlink="#525D76"><table border="0" width="100%" cellspacing="0"><!--PAGE HEADER--><tr><td><!--PROJECT LOGO--><a href="http://tomcat.apache.org/"><img src="../../images/tomcat.gif" align="right" alt="
							 | 
						||
| 
								 | 
							
								    The Apache Tomcat Servlet/JSP Container
							 | 
						||
| 
								 | 
							
								  " border="0"></a></td><td><font face="arial,helvetica,sanserif"><h1>Apache Tomcat 6.0</h1></font></td><td><!--APACHE LOGO--><a href="http://www.apache.org/"><img src="../../images/asf-logo.gif" align="right" alt="Apache Logo" border="0"></a></td></tr></table><table border="0" width="100%" cellspacing="4"><!--HEADER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><tr><!--RIGHT SIDE MAIN BODY--><td width="80%" valign="top" align="left"><table border="0" width="100%" cellspacing="4"><tr><td align="left" valign="top"><h1>Apache Tomcat Configuration Reference</h1><h2>The HTTP Connector</h2></td><td align="right" valign="top" nowrap="true"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Introduction"><strong>Introduction</strong></a></font></td></tr><tr><td><blockquote>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <p>The <strong>HTTP Connector</strong> element represents a
							 | 
						||
| 
								 | 
							
								  <strong>Connector</strong> component that supports the HTTP/1.1 protocol.
							 | 
						||
| 
								 | 
							
								  It enables Catalina to function as a stand-alone web server, in addition
							 | 
						||
| 
								 | 
							
								  to its ability to execute servlets and JSP pages.  A particular instance
							 | 
						||
| 
								 | 
							
								  of this component listens for connections on a specific TCP port number
							 | 
						||
| 
								 | 
							
								  on the server.  One or more such <strong>Connectors</strong> can be
							 | 
						||
| 
								 | 
							
								  configured as part of a single <a href="service.html">Service</a>, each
							 | 
						||
| 
								 | 
							
								  forwarding to the associated <a href="engine.html">Engine</a> to perform
							 | 
						||
| 
								 | 
							
								  request processing and create the response.</p>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <p>If you wish to configure the <strong>Connector</strong> that is used
							 | 
						||
| 
								 | 
							
								  for connections to web servers using the AJP protocol (such as the
							 | 
						||
| 
								 | 
							
								  <code>mod_jk 1.2.x</code> connector for Apache 1.3), see
							 | 
						||
| 
								 | 
							
								  <a href="ajp.html">here</a> instead.</p>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <p>Each incoming request requires
							 | 
						||
| 
								 | 
							
								  a thread for the duration of that request.  If more simultaneous requests
							 | 
						||
| 
								 | 
							
								  are received than can be handled by the currently available request
							 | 
						||
| 
								 | 
							
								  processing threads, additional threads will be created up to the
							 | 
						||
| 
								 | 
							
								  configured maximum (the value of the <code>maxThreads</code> attribute).
							 | 
						||
| 
								 | 
							
								  If still more simultaneous requests are received, they are stacked up
							 | 
						||
| 
								 | 
							
								  inside the server socket created by the <strong>Connector</strong>, up to
							 | 
						||
| 
								 | 
							
								  the configured maximum (the value of the <code>acceptCount</code>
							 | 
						||
| 
								 | 
							
								  attribute.  Any further simultaneous requests will receive "connection
							 | 
						||
| 
								 | 
							
								  refused" errors, until resources are available to process them.</p>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Attributes"><strong>Attributes</strong></a></font></td></tr><tr><td><blockquote>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Common Attributes"><strong>Common Attributes</strong></a></font></td></tr><tr><td><blockquote>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <p>All implementations of <strong>Connector</strong>
							 | 
						||
| 
								 | 
							
								  support the following attributes:</p>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>allowTrace</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>A boolean value which can be used to enable or disable the TRACE
							 | 
						||
| 
								 | 
							
								      HTTP method. If not specified, this attribute is set to false.</p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>emptySessionPath</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>If set to <code>true</code>, all paths for session cookies will be set
							 | 
						||
| 
								 | 
							
								      to <code>/</code>. This can be useful for portlet specification implementations,
							 | 
						||
| 
								 | 
							
								      but will greatly affect performance if many applications are accessed on a given
							 | 
						||
| 
								 | 
							
								      server by the client.
							 | 
						||
| 
								 | 
							
								      If not specified, this attribute is set to <code>false</code>.</p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>enableLookups</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>Set to <code>true</code> if you want calls to
							 | 
						||
| 
								 | 
							
								      <code>request.getRemoteHost()</code> to perform DNS lookups in
							 | 
						||
| 
								 | 
							
								      order to return the actual host name of the remote client.  Set
							 | 
						||
| 
								 | 
							
								      to <code>false</code> to skip the DNS lookup and return the IP
							 | 
						||
| 
								 | 
							
								      address in String form instead (thereby improving performance).
							 | 
						||
| 
								 | 
							
								      By default, DNS lookups are enabled.</p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>maxPostSize</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>The maximum size in bytes of the POST which will be handled by
							 | 
						||
| 
								 | 
							
								      the container FORM URL parameter parsing. The limit can be disabled by
							 | 
						||
| 
								 | 
							
								      setting this attribute to a value less than or equal to 0.
							 | 
						||
| 
								 | 
							
								      If not specified, this attribute is set to 2097152 (2 megabytes).</p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>maxSavePostSize</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>The maximum size in bytes of the POST which will be saved/buffered by
							 | 
						||
| 
								 | 
							
								      the container during FORM or CLIENT-CERT authentication. For both types
							 | 
						||
| 
								 | 
							
								      of authentication, the POST will be saved/buffered before the user is
							 | 
						||
| 
								 | 
							
								      authenticated. For CLIENT-CERT authentication, the POST is buffered for
							 | 
						||
| 
								 | 
							
								      the duration of
							 | 
						||
| 
								 | 
							
								 the SSL handshake and the buffer emptied when the request
							 | 
						||
| 
								 | 
							
								      is processed. For FORM authentication the POST is
							 | 
						||
| 
								 | 
							
								 saved whilst the user
							 | 
						||
| 
								 | 
							
								      is re-directed to the login form and is retained until the user
							 | 
						||
| 
								 | 
							
								      successfully authenticates or the session associated with the
							 | 
						||
| 
								 | 
							
								      authentication request expires. The limit can be disabled by setting this
							 | 
						||
| 
								 | 
							
								      attribute to -1. Setting the attribute to
							 | 
						||
| 
								 | 
							
								 zero will disable the saving of
							 | 
						||
| 
								 | 
							
								      POST data during authentication
							 | 
						||
| 
								 | 
							
								. If not
							 | 
						||
| 
								 | 
							
								 specified, this attribute is set
							 | 
						||
| 
								 | 
							
								      to
							 | 
						||
| 
								 | 
							
								 4096 (4 kilobytes).</p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>protocol</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>
							 | 
						||
| 
								 | 
							
								        Sets the protocol to handle incoming traffic.
							 | 
						||
| 
								 | 
							
								        The default value is <code>HTTP/1.1</code> and configures the 
							 | 
						||
| 
								 | 
							
								        <code>org.apache.coyote.http11.Http11Protocol</code>. This is the blocking Java connector.<br>
							 | 
						||
| 
								 | 
							
								        If the <code>PATH(Windows)</code> or <code>LD_LIBRARY_PATH(on most unix system)</code>  
							 | 
						||
| 
								 | 
							
								        environment variables contain the Tomcat native library, the APR connector
							 | 
						||
| 
								 | 
							
								        will automatically be configured. Please be advised that the APR connector has different
							 | 
						||
| 
								 | 
							
								        settings for HTTPS than the default Java connector.<br>
							 | 
						||
| 
								 | 
							
								        Other values for this attribute are, but not limited to:<br>
							 | 
						||
| 
								 | 
							
								        <code>org.apache.coyote.http11.Http11Protocol</code> - same as HTTP/1.1<br>
							 | 
						||
| 
								 | 
							
								        <code>org.apache.coyote.http11.Http11NioProtocol</code> - non blocking Java connector<br>
							 | 
						||
| 
								 | 
							
								        <code>org.apache.coyote.http11.Http11AprProtocol</code> - the APR connector.<br>
							 | 
						||
| 
								 | 
							
								        Take a look at our <a href="#Connector Comparison">Connector Comparison</a> chart.
							 | 
						||
| 
								 | 
							
								        The configuration for both Java connectors are identical, both for http and https. <br>
							 | 
						||
| 
								 | 
							
								        For more information on the APR connector and APR specific SSL settings please 
							 | 
						||
| 
								 | 
							
								        visit the <a href="../../apr.html">APR documentation</a>
							 | 
						||
| 
								 | 
							
								        
							 | 
						||
| 
								 | 
							
								      </p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>proxyName</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>If this <strong>Connector</strong> is being used in a proxy
							 | 
						||
| 
								 | 
							
								      configuration, configure this attribute to specify the server name
							 | 
						||
| 
								 | 
							
								      to be returned for calls to <code>request.getServerName()</code>.
							 | 
						||
| 
								 | 
							
								      See <a href="#Proxy Support">Proxy Support</a> for more
							 | 
						||
| 
								 | 
							
								      information.</p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>proxyPort</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>If this <strong>Connector</strong> is being used in a proxy
							 | 
						||
| 
								 | 
							
								      configuration, configure this attribute to specify the server port
							 | 
						||
| 
								 | 
							
								      to be returned for calls to <code>request.getServerPort()</code>.
							 | 
						||
| 
								 | 
							
								      See <a href="#Proxy Support">Proxy Support</a> for more
							 | 
						||
| 
								 | 
							
								      information.</p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>redirectPort</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>If this <strong>Connector</strong> is supporting non-SSL
							 | 
						||
| 
								 | 
							
								      requests, and a request is received for which a matching
							 | 
						||
| 
								 | 
							
								      <code><security-constraint></code> requires SSL transport,
							 | 
						||
| 
								 | 
							
								      Catalina will automatically redirect the request to the port
							 | 
						||
| 
								 | 
							
								      number specified here.</p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>SSLEnabled</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>
							 | 
						||
| 
								 | 
							
								      Use this attribute to enable SSL traffic on a connector.
							 | 
						||
| 
								 | 
							
								      To turn on SSL handshake/encryption/decryption on a connector
							 | 
						||
| 
								 | 
							
								      set this value to <code>true</code>.
							 | 
						||
| 
								 | 
							
								      The default value is <code>false</code>.
							 | 
						||
| 
								 | 
							
								      When turning this value <code>true</code> you will want to set the 
							 | 
						||
| 
								 | 
							
								      <code>scheme</code> and the <code>secure</code> attributes as well
							 | 
						||
| 
								 | 
							
								      to pass the correct <code>request.getScheme()</code> and 
							 | 
						||
| 
								 | 
							
								      <code>request.isSecure()</code> values to the servlets
							 | 
						||
| 
								 | 
							
								      See <a href="#SSL Support">SSL Support</a> for more information.
							 | 
						||
| 
								 | 
							
								      </p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>scheme</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>Set this attribute to the name of the protocol you wish to have
							 | 
						||
| 
								 | 
							
								      returned by calls to <code>request.getScheme()</code>.  For
							 | 
						||
| 
								 | 
							
								      example, you would set this attribute to "<code>https</code>"
							 | 
						||
| 
								 | 
							
								      for an SSL Connector.  The default value is "<code>http</code>".
							 | 
						||
| 
								 | 
							
								      </p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>secure</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>Set this attribute to <code>true</code> if you wish to have
							 | 
						||
| 
								 | 
							
								      calls to <code>request.isSecure()</code> to return <code>true</code>
							 | 
						||
| 
								 | 
							
								      for requests received by this Connector. You would want this on an
							 | 
						||
| 
								 | 
							
								      SSL Connector or a non SSL connector that is receiving data from a 
							 | 
						||
| 
								 | 
							
								      SSL accelerator, like a crypto card, a SSL appliance or even a webserver.
							 | 
						||
| 
								 | 
							
								      The default value is <code>false</code>.</p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>URIEncoding</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>This specifies the character encoding used to decode the URI bytes,
							 | 
						||
| 
								 | 
							
								      after %xx decoding the URL. If not specified, ISO-8859-1 will be used.
							 | 
						||
| 
								 | 
							
								      </p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>useBodyEncodingForURI</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>This specifies if the encoding specified in contentType should be used
							 | 
						||
| 
								 | 
							
								      for URI query parameters, instead of using the URIEncoding. This
							 | 
						||
| 
								 | 
							
								      setting is present for compatibility with Tomcat 4.1.x, where the
							 | 
						||
| 
								 | 
							
								      encoding specified in the contentType, or explicitely set using
							 | 
						||
| 
								 | 
							
								      Request.setCharacterEncoding method was also used for the parameters from
							 | 
						||
| 
								 | 
							
								      the URL. The default value is <code>false</code>.
							 | 
						||
| 
								 | 
							
								      </p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>useIPVHosts</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>Set this attribute to <code>true</code> to cause Tomcat to use
							 | 
						||
| 
								 | 
							
								      the IP address that the request was recieved on to determine the Host
							 | 
						||
| 
								 | 
							
								      to send the request to.  The default value is <code>false</code>.</p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>xpoweredBy</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>Set this attribute to <code>true</code> to cause Tomcat to advertise
							 | 
						||
| 
								 | 
							
								      support for the Servlet specification using the header recommended in the
							 | 
						||
| 
								 | 
							
								      specification.  The default value is <code>false</code>.</p>
							 | 
						||
| 
								 | 
							
								    </td></tr></table>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  </blockquote></td></tr></table>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Standard Implementation"><strong>Standard Implementation</strong></a></font></td></tr><tr><td><blockquote>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <p>
							 | 
						||
| 
								 | 
							
								  HTTP supports the following additional attributes (in addition to the
							 | 
						||
| 
								 | 
							
								  common attributes listed above):</p>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>acceptCount</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <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 10.</p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>address</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>For servers with more than one IP address, this attribute
							 | 
						||
| 
								 | 
							
								      specifies which address will be used for listening on the specified
							 | 
						||
| 
								 | 
							
								      port.  By default, this port will be used on all IP addresses
							 | 
						||
| 
								 | 
							
								      associated with the server.</p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>bufferSize</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>The size (in bytes) of the buffer to be provided for input
							 | 
						||
| 
								 | 
							
								      streams created by this connector.  By default, buffers of
							 | 
						||
| 
								 | 
							
								      2048 bytes will be provided.</p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>compressableMimeType</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>The value is a comma separated list of MIME types for which HTTP
							 | 
						||
| 
								 | 
							
								      compression may be used.
							 | 
						||
| 
								 | 
							
								      The default value is <code>text/html,text/xml,text/plain</code>.</p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>compression</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>The <strong>Connector</strong> may use HTTP/1.1 GZIP compression in
							 | 
						||
| 
								 | 
							
								      an attempt to save server bandwidth. The acceptable values for the
							 | 
						||
| 
								 | 
							
								      parameter is "off" (disable compression), "on" (allow compression, which
							 | 
						||
| 
								 | 
							
								      causes text data to be compressed), "force" (forces compression in all
							 | 
						||
| 
								 | 
							
								      cases), or a numerical integer value (which is equivalent to "on", but
							 | 
						||
| 
								 | 
							
								      specifies the minimum amount of data before the output is compressed). If
							 | 
						||
| 
								 | 
							
								      the content-length is not known and compression is set to "on" or more
							 | 
						||
| 
								 | 
							
								      aggressive, the output will also be compressed. If not specified, this
							 | 
						||
| 
								 | 
							
								      attribute is set to "off".</p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>connectionLinger</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>The number of milliseconds during which the sockets used by this
							 | 
						||
| 
								 | 
							
								      <strong>Connector</strong> will linger when they are closed.
							 | 
						||
| 
								 | 
							
								      The default value is -1 (socket linger is disabled).</p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>connectionTimeout</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <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 60000 (i.e. 60 seconds).</p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>executor</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <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>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>keepAliveTimeout</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>The number of milliseconds this <strong>Connector</strong> will wait for
							 | 
						||
| 
								 | 
							
								       another HTTP request before closing the connection.
							 | 
						||
| 
								 | 
							
								       The default value is to use the value that has been set for the
							 | 
						||
| 
								 | 
							
								       connectionTimeout attribute.</p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>disableUploadTimeout</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>This flag allows the servlet container to use a different, longer
							 | 
						||
| 
								 | 
							
								      connection timeout while a servlet is being executed, which in the end
							 | 
						||
| 
								 | 
							
								      allows either the servlet a longer amount of time to complete its
							 | 
						||
| 
								 | 
							
								      execution, or a longer timeout during data upload. If not specified,
							 | 
						||
| 
								 | 
							
								      this attribute is set to "true".</p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>maxHttpHeaderSize</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>The maximum size of the request and response HTTP header, specified
							 | 
						||
| 
								 | 
							
								      in bytes.
							 | 
						||
| 
								 | 
							
								      If not specified, this attribute is set to 4096 (4 KB).</p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>maxKeepAliveRequests</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>The maximum number of HTTP requests which can be pipelined until
							 | 
						||
| 
								 | 
							
								      the connection is closed by the server. Setting this attribute to 1 will
							 | 
						||
| 
								 | 
							
								      disable HTTP/1.0 keep-alive, as well as HTTP/1.1 keep-alive and
							 | 
						||
| 
								 | 
							
								      pipelining. Setting this to -1 will allow an unlimited amount of
							 | 
						||
| 
								 | 
							
								      pipelined or keep-alive HTTP requests.
							 | 
						||
| 
								 | 
							
								      If not specified, this attribute is set to 100.</p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>maxThreads</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>The maximum number of request processing threads to be created
							 | 
						||
| 
								 | 
							
								      by this <strong>Connector</strong>, which therefore determines the
							 | 
						||
| 
								 | 
							
								      maximum number of simultaneous requests that can be handled.  If
							 | 
						||
| 
								 | 
							
								      not specified, this attribute is set to 40. If an executor is associated
							 | 
						||
| 
								 | 
							
								      with this connector, this attribute is ignored as the connector will 
							 | 
						||
| 
								 | 
							
								      execute tasks using the executor rather than an internal thread pool.</p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>noCompressionUserAgents</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>The value is a comma separated list of regular expressions matching
							 | 
						||
| 
								 | 
							
								      user-agents of HTTP clients for which compression should not be used,
							 | 
						||
| 
								 | 
							
								      because these clients, although they do advertise support for the
							 | 
						||
| 
								 | 
							
								      feature, have a broken implementation.
							 | 
						||
| 
								 | 
							
								      The default value is an empty String (regexp matching disabled).</p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><strong><code>port</code></strong></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>The TCP port number on which this <strong>Connector</strong>
							 | 
						||
| 
								 | 
							
								      will create a server socket and await incoming connections.  Your
							 | 
						||
| 
								 | 
							
								      operating system will allow only one server application to listen
							 | 
						||
| 
								 | 
							
								      to a particular port number on a particular IP address.</p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>restrictedUserAgents</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>The value is a comma separated list of regular expressions matching
							 | 
						||
| 
								 | 
							
								      user-agents of HTTP clients for which HTTP/1.1 or HTTP/1.0 keep alive
							 | 
						||
| 
								 | 
							
								      should not be used, even if the clients advertise support for these
							 | 
						||
| 
								 | 
							
								      features.
							 | 
						||
| 
								 | 
							
								      The default value is an empty String (regexp matching disabled).</p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>server</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>The Server header for the http response.
							 | 
						||
| 
								 | 
							
								         Unless you are paranoid, you won't need this feature.
							 | 
						||
| 
								 | 
							
								      </p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>socketBuffer</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>The size (in bytes) of the buffer to be provided for socket
							 | 
						||
| 
								 | 
							
								      output buffering. -1 can be specified to disable the use of a buffer.
							 | 
						||
| 
								 | 
							
								      By default, a buffers of 9000 bytes will be used.</p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>tcpNoDelay</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <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>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>threadPriority</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <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>
							 | 
						||
| 
								 | 
							
								    </td></tr></table>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  </blockquote></td></tr></table>
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								    <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Nio Implementation"><strong>Nio Implementation</strong></a></font></td></tr><tr><td><blockquote>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    <p>The NIO connector exposes all the low level socket properties that can be used to tune the connector.
							 | 
						||
| 
								 | 
							
								    Most of these attributes are directly linked to the socket implementation in the JDK so you can find out 
							 | 
						||
| 
								 | 
							
								    about the actual meaning in the JDK API documentation.<br>
							 | 
						||
| 
								 | 
							
								    <strong>Note</strong>On some JDK versions, setTrafficClass causes a problem, a work around for this is to add 
							 | 
						||
| 
								 | 
							
								    the <code>-Djava.net.preferIPv4Stack=true</code> value to your command line</p>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>useSendfile</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								        <p>(bool)Use this attribute to enable or disable sendfile capability.
							 | 
						||
| 
								 | 
							
								           The default value is <code>true</code>
							 | 
						||
| 
								 | 
							
								        </p>
							 | 
						||
| 
								 | 
							
								      </td></tr><tr><td align="left" valign="center"><code>useExecutor</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								        <p>(bool)Set to true to use the NIO thread pool executor. The default value is <code>true</code>.
							 | 
						||
| 
								 | 
							
								        If set to false, it uses a thread pool based on a stack for its execution.
							 | 
						||
| 
								 | 
							
								        Generally, using the executor yields a little bit slower performance, but yields a better
							 | 
						||
| 
								 | 
							
								        fairness for processing connections in a high load environment as the traffic gets queued through a 
							 | 
						||
| 
								 | 
							
								        FIFO queue. If set to true(default) then the max pool size is the <code>maxThreads</code> attribute
							 | 
						||
| 
								 | 
							
								        and the core pool size is the <code>minSpareThreads</code>.
							 | 
						||
| 
								 | 
							
								        This value is ignored if the <code>executor</code> attribute is present and points to a valid shared thread pool.
							 | 
						||
| 
								 | 
							
								        </p>
							 | 
						||
| 
								 | 
							
								      </td></tr><tr><td align="left" valign="center"><code>acceptorThreadCount</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								        <p>(int)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>
							 | 
						||
| 
								 | 
							
								      </td></tr><tr><td align="left" valign="center"><code>pollerThreadCount</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								        <p>(int)The number of threads to be used to run for the polling events. Default value is <code>1</code>.
							 | 
						||
| 
								 | 
							
								           Can't see a reason to go above that. But experiment and find your own results.</p>
							 | 
						||
| 
								 | 
							
								      </td></tr><tr><td align="left" valign="center"><code>pollerThreadPriority</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								        <p>(int)The priority of the poller threads.
							 | 
						||
| 
								 | 
							
								          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>
							 | 
						||
| 
								 | 
							
								      </td></tr><tr><td align="left" valign="center"><code>acceptorThreadPriority</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								        <p>(int)The priority of the acceptor threads. The threads used to accept new connections.
							 | 
						||
| 
								 | 
							
								          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>
							 | 
						||
| 
								 | 
							
								      </td></tr><tr><td align="left" valign="center"><code>selectorTimeout</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								        <p>(int)The time in milliseconds to timeout on a select() for the poller.
							 | 
						||
| 
								 | 
							
								           This value is important, since connection clean up is done on the same thread, so dont set this 
							 | 
						||
| 
								 | 
							
								           value to an extremely high one. The default value is <code>1000</code> milliseconds.</p>
							 | 
						||
| 
								 | 
							
								      </td></tr><tr><td align="left" valign="center"><code>useComet</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								        <p>(bool)Whether to allow comet servlets or not, Default value is <code>true</code>.</p>
							 | 
						||
| 
								 | 
							
								      </td></tr><tr><td align="left" valign="center"><code>processCache</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								        <p>(int)The protocol handler caches Http11NioProcessor 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>
							 | 
						||
| 
								 | 
							
								      </td></tr><tr><td align="left" valign="center"><code>socket.directBuffer</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								        <p>(bool)Boolean value, whether to use direct ByteBuffers or java mapped ByteBuffers. Default is <code>false</code>
							 | 
						||
| 
								 | 
							
								           <br>When you are using direct buffers, make sure you allocate the appropriate amount of memory for the 
							 | 
						||
| 
								 | 
							
								                direct memory space. On Sun's JDK that would be something like <code>-XX:MaxDirectMemorySize=256m</code></p>
							 | 
						||
| 
								 | 
							
								      </td></tr><tr><td align="left" valign="center"><code>socket.rxBufSize</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								        <p>(int)The socket receive buffer (SO_RCVBUF) size in bytes. Default value is <code>25188</code></p>
							 | 
						||
| 
								 | 
							
								      </td></tr><tr><td align="left" valign="center"><code>socket.txBufSize</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								        <p>(int)The socket send buffer (SO_SNDBUF) size in bytes. Default value is <code>43800</code></p>
							 | 
						||
| 
								 | 
							
								      </td></tr><tr><td align="left" valign="center"><code>socket.appReadBufSize</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								        <p>(int)Each connection that is opened up in Tomcat get associated with a read and a write ByteBuffer
							 | 
						||
| 
								 | 
							
								           This attribute controls the size of these buffers. By default this read buffer is sized at <code>8192</code> bytes.
							 | 
						||
| 
								 | 
							
								           For lower concurrency, you can increase this to buffer more data.
							 | 
						||
| 
								 | 
							
								           For an extreme amount of keep alive connections, decrease this number or increase your heap size.</p>
							 | 
						||
| 
								 | 
							
								      </td></tr><tr><td align="left" valign="center"><code>socket.appWriteBufSize</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								        <p>(int)Each connection that is opened up in Tomcat get associated with a read and a write ByteBuffer
							 | 
						||
| 
								 | 
							
								           This attribute controls the size of these buffers. By default this write buffer is sized at <code>8192</code> bytes.
							 | 
						||
| 
								 | 
							
								           For low concurrency you can increase this to buffer more response data.
							 | 
						||
| 
								 | 
							
								           For an extreme amount of keep alive connections, decrease this number or increase your heap size.
							 | 
						||
| 
								 | 
							
								           <br>
							 | 
						||
| 
								 | 
							
								           The default value here is pretty low, you should up it if you are not dealing with tens of thousands
							 | 
						||
| 
								 | 
							
								           concurrent connections.</p>
							 | 
						||
| 
								 | 
							
								      </td></tr><tr><td align="left" valign="center"><code>socket.bufferPool</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								        <p>(int)The Nio connector uses a class called NioChannel that holds elements linked to a socket.
							 | 
						||
| 
								 | 
							
								           To reduce garbage collection, the Nio connector caches these channel objects.
							 | 
						||
| 
								 | 
							
								           This value specifies the size of this cache.
							 | 
						||
| 
								 | 
							
								           The default value is <code>500</code>, and represents that the cache will hold 500 NioChannel objects.
							 | 
						||
| 
								 | 
							
								           Other values are <code>-1</code>. unlimited cache, and <code>0</code>, no cache.</p>
							 | 
						||
| 
								 | 
							
								      </td></tr><tr><td align="left" valign="center"><code>socket.bufferPoolSize</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								        <p>(int)The NioChannel pool can also be size based, not used object based. The size is calculated as follows:<br>
							 | 
						||
| 
								 | 
							
								        NioChannel <code>buffer size = read buffer size + write buffer size</code><br>
							 | 
						||
| 
								 | 
							
								        SecureNioChannel <code>buffer size = application read buffer size + application write buffer size + network read buffer size + network write buffer size</code><br>
							 | 
						||
| 
								 | 
							
								        The value is in bytes, the default value is <code>1024*1024*100</code> (100MB)
							 | 
						||
| 
								 | 
							
								        </p>
							 | 
						||
| 
								 | 
							
								      </td></tr><tr><td align="left" valign="center"><code>socket.processorCache</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								        <p>(int)Tomcat will cache SocketProcessor objects to reduce garbage collection.
							 | 
						||
| 
								 | 
							
								           The integer value specifies how many objects to keep in the cache at most.
							 | 
						||
| 
								 | 
							
								           The default is <code>500</code>.
							 | 
						||
| 
								 | 
							
								           Other values are <code>-1</code>. unlimited cache, and <code>0</code>, no cache.</p>
							 | 
						||
| 
								 | 
							
								      </td></tr><tr><td align="left" valign="center"><code>socket.keyCache</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								        <p>(int)Tomcat will cache KeyAttachment objects to reduce garbage collection.
							 | 
						||
| 
								 | 
							
								           The integer value specifies how many objects to keep in the cache at most.
							 | 
						||
| 
								 | 
							
								           The default is <code>500</code>.
							 | 
						||
| 
								 | 
							
								           Other values are <code>-1</code>. unlimited cache, and <code>0</code>, no cache.</p>
							 | 
						||
| 
								 | 
							
								      </td></tr><tr><td align="left" valign="center"><code>socket.eventCache</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								        <p>(int)Tomcat will cache PollerEvent objects to reduce garbage collection.
							 | 
						||
| 
								 | 
							
								           The integer value specifies how many objects to keep in the cache at most.
							 | 
						||
| 
								 | 
							
								           The default is <code>500</code>.
							 | 
						||
| 
								 | 
							
								           Other values are <code>-1</code>. unlimited cache, and <code>0</code>, no cache.</p>
							 | 
						||
| 
								 | 
							
								      </td></tr><tr><td align="left" valign="center"><code>socket.tcpNoDelay</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								        <p>(bool)same as the standard setting <code>tcpNoDelay</code>. Default value is <code>false</code></p>
							 | 
						||
| 
								 | 
							
								      </td></tr><tr><td align="left" valign="center"><code>socket.soKeepAlive</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								        <p>(bool)Boolean value for the socket's keep alive setting (SO_KEEPALIVE). Default is <code>false</code>. </p>
							 | 
						||
| 
								 | 
							
								      </td></tr><tr><td align="left" valign="center"><code>socket.ooBInline</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								        <p>(bool)Boolean value for the socket OOBINLINE setting. Default value is <code>true</code></p>
							 | 
						||
| 
								 | 
							
								      </td></tr><tr><td align="left" valign="center"><code>socket.soReuseAddress</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								        <p>(bool)Boolean value for the sockets reuse address option (SO_REUSEADDR). Default value is <code>true</code></p>
							 | 
						||
| 
								 | 
							
								      </td></tr><tr><td align="left" valign="center"><code>socket.soLingerOn</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								        <p>(bool)Boolean value for the sockets so linger option (SO_LINGER). Default value is <code>true</code>.
							 | 
						||
| 
								 | 
							
								           This option is paired with the <code>soLingerTime</code> value.</p>
							 | 
						||
| 
								 | 
							
								      </td></tr><tr><td align="left" valign="center"><code>socket.soLingerTime</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								        <p>(bool)Value in seconds for the sockets so linger option (SO_LINGER). Default value is <code>25</code> seconds.
							 | 
						||
| 
								 | 
							
								           This option is paired with the soLinger value.</p>
							 | 
						||
| 
								 | 
							
								      </td></tr><tr><td align="left" valign="center"><code>socket.soTimeout</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								        <p>(int)Value in milliseconds for the sockets read timeout (SO_TIMEOUT). Default value is <code>5000</code> milliseconds.</p>
							 | 
						||
| 
								 | 
							
								      </td></tr><tr><td align="left" valign="center"><code>socket.soTrafficClass</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								        <p>(byte)Value between <code>0</code> and <code>255</code> for the traffic class on the socket, <code>0x04 | 0x08 | 0x010</code></p>
							 | 
						||
| 
								 | 
							
								      </td></tr><tr><td align="left" valign="center"><code>socket.performanceConnectionTime</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								        <p>(int)The first value for the performance settings. Default is <code>1</code>, see <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/net/Socket.html#setPerformancePreferences(int,%20int,%20int)">Socket Performance Options</a></p>
							 | 
						||
| 
								 | 
							
								      </td></tr><tr><td align="left" valign="center"><code>socket.performanceLatency</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								        <p>(int)The second value for the performance settings. Default is <code>0</code>, see <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/net/Socket.html#setPerformancePreferences(int,%20int,%20int)">Socket Performance Options</a></p>
							 | 
						||
| 
								 | 
							
								      </td></tr><tr><td align="left" valign="center"><code>socket.performanceBandwidth</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								        <p>(int)The third value for the performance settings. Default is <code>1</code>, see <a href="http://java.sun.com/j2se/1.5.0/docs/api/java/net/Socket.html#setPerformancePreferences(int,%20int,%20int)">Socket Performance Options</a></p>
							 | 
						||
| 
								 | 
							
								      </td></tr><tr><td align="left" valign="center"><code>selectorPool.maxSelectors</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								        <p>(int)The max selectors to be used in the pool, to reduce selector contention.
							 | 
						||
| 
								 | 
							
								        Use this option when the command line <code>org.apache.tomcat.util.net.NioSelectorShared</code> value is set to false.
							 | 
						||
| 
								 | 
							
								        Default value is <code>200</code>.</p>
							 | 
						||
| 
								 | 
							
								      </td></tr><tr><td align="left" valign="center"><code>selectorPool.maxSpareSelectors</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								        <p>(int)The max spare selectors to be used in the pool, to reduce selector contention.
							 | 
						||
| 
								 | 
							
								        When a selector is returned to the pool, the system can decide to keep it or let it be GC:ed.
							 | 
						||
| 
								 | 
							
								        Use this option when the command line <code>org.apache.tomcat.util.net.NioSelectorShared</code> value is set to false.
							 | 
						||
| 
								 | 
							
								        Default value is <code>-1</code> (unlimited)</p>
							 | 
						||
| 
								 | 
							
								      </td></tr><tr><td align="left" valign="center"><code>command-line-options</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								        <p>The following command line options are available for the NIO connector:<br>
							 | 
						||
| 
								 | 
							
								        <code>-Dorg.apache.tomcat.util.net.NioSelectorShared=true|false</code> - default is <code>true</code>.
							 | 
						||
| 
								 | 
							
								        Set this value to false if you wish to use a selector for each thread.
							 | 
						||
| 
								 | 
							
								        the property. If you do set it to false, you can control the size of the pool of selectors by using the 
							 | 
						||
| 
								 | 
							
								        selectorPool.maxSelectors attribute</p>
							 | 
						||
| 
								 | 
							
								      </td></tr><tr><td align="left" valign="center"><code>oomParachute</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								        <p>(int)The NIO connector implements an OutOfMemoryError strategy called parachute.
							 | 
						||
| 
								 | 
							
								           It holds a chunk of data as a byte array. In case of an OOM,
							 | 
						||
| 
								 | 
							
								           this chunk of data is released and the error is reported. This will give the VM enough room
							 | 
						||
| 
								 | 
							
								           to clean up. The <code>oomParachute</code> represent the size in bytes of the parachute(the byte array).
							 | 
						||
| 
								 | 
							
								           The default value is <code>1024*1024</code>(1MB).
							 | 
						||
| 
								 | 
							
								           Please note, this only works for OOM errors regarding the Java Heap space, and there is absolutely no 
							 | 
						||
| 
								 | 
							
								           guarantee that you will be able to recover at all.
							 | 
						||
| 
								 | 
							
								           If you have an OOM outside of the Java Heap, then this parachute trick will not help.
							 | 
						||
| 
								 | 
							
								        </p>
							 | 
						||
| 
								 | 
							
								      </td></tr></table>
							 | 
						||
| 
								 | 
							
								  </blockquote></td></tr></table>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Nested Components"><strong>Nested Components</strong></a></font></td></tr><tr><td><blockquote>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <p>None at this time.</p>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								</blockquote></td></tr></table><table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#525D76"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Special Features"><strong>Special Features</strong></a></font></td></tr><tr><td><blockquote>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="HTTP/1.1 and HTTP/1.0 Support"><strong>HTTP/1.1 and HTTP/1.0 Support</strong></a></font></td></tr><tr><td><blockquote>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <p>This <strong>Connector</strong> supports all of the required features
							 | 
						||
| 
								 | 
							
								  of the HTTP/1.1 protocol, as described in RFC 2616, including persistent
							 | 
						||
| 
								 | 
							
								  connections, pipelining, expectations and chunked encoding.  If the client
							 | 
						||
| 
								 | 
							
								  (typically a browser) supports only HTTP/1.0, the
							 | 
						||
| 
								 | 
							
								  <strong>Connector</strong> will gracefully fall back to supporting this
							 | 
						||
| 
								 | 
							
								  protocol as well.  No special configuration is required to enable this
							 | 
						||
| 
								 | 
							
								  support. The <strong>Connector</strong> also supports HTTP/1.0
							 | 
						||
| 
								 | 
							
								  keep-alive.</p>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <p>RFC 2616 requires that HTTP servers always begin their responses with
							 | 
						||
| 
								 | 
							
								  the highest HTTP version that they claim to support.  Therefore, this
							 | 
						||
| 
								 | 
							
								  <strong>Connector</strong> will always return <code>HTTP/1.1</code> at
							 | 
						||
| 
								 | 
							
								  the beginning of its responses.</p>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  </blockquote></td></tr></table>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Proxy Support"><strong>Proxy Support</strong></a></font></td></tr><tr><td><blockquote>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <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>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  </blockquote></td></tr></table>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="SSL Support"><strong>SSL Support</strong></a></font></td></tr><tr><td><blockquote>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <p>You can enable SSL support for a particular instance of this
							 | 
						||
| 
								 | 
							
								  <strong>Connector</strong> by setting the <code>secure</code> attribute to
							 | 
						||
| 
								 | 
							
								  <code>true</code>.  In addition, you may need to configure the following
							 | 
						||
| 
								 | 
							
								  attributes:</p>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <table border="1" cellpadding="5"><tr><th width="15%" bgcolor="#023264"><font color="#ffffff">Attribute</font></th><th width="85%" bgcolor="#023264"><font color="#ffffff">Description</font></th></tr><tr><td align="left" valign="center"><code>algorithm</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>The certificate encoding algorithm to be used. This defaults to the Sun
							 | 
						||
| 
								 | 
							
								      implementation (<code>SunX509</code>). For IBM JVMs you should use the
							 | 
						||
| 
								 | 
							
								      value <code>IbmX509</code>. For other vendors, consult the JVM
							 | 
						||
| 
								 | 
							
								      documentation for the correct value.</p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>clientAuth</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>Set to <code>true</code> if you want the SSL stack to require a
							 | 
						||
| 
								 | 
							
								      valid certificate chain from the client before accepting a connection.
							 | 
						||
| 
								 | 
							
								      Set to <code>want</code> if you want the SSL stack to request a client
							 | 
						||
| 
								 | 
							
								      Certificate, but not fail if one isn't presented. A <code>false</code>
							 | 
						||
| 
								 | 
							
								      value (which is the default) will not require a certificate chain
							 | 
						||
| 
								 | 
							
								      unless the client requests a resource protected by a security
							 | 
						||
| 
								 | 
							
								      constraint that uses <code>CLIENT-CERT</code> authentication. See the
							 | 
						||
| 
								 | 
							
								      <a href="../../ssl-howto.html">SSL HowTo</a> for an example.</p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>keystoreFile</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>The pathname of the keystore file where you have stored the
							 | 
						||
| 
								 | 
							
								      server certificate to be loaded.  By default, the pathname is
							 | 
						||
| 
								 | 
							
								      the file "<code>.keystore</code>" in the operating system home
							 | 
						||
| 
								 | 
							
								      directory of the user that is running Tomcat.</p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>keystorePass</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>The password used to access the server certificate from the
							 | 
						||
| 
								 | 
							
								      specified keystore file.  The default value is "<code>changeit</code>".
							 | 
						||
| 
								 | 
							
								      </p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>keystoreType</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>The type of keystore file to be used for the server certificate.
							 | 
						||
| 
								 | 
							
								      If not specified, the default value is "<code>JKS</code>".</p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>sslProtocol</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>The version of the SSL protocol to use.  If not specified,
							 | 
						||
| 
								 | 
							
								      the default is "<code>TLS</code>".</p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>ciphers</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>A comma seperated list of the encryption ciphers that may be used.
							 | 
						||
| 
								 | 
							
								      If not specified, then any available cipher may be used.</p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>keyAlias</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>The alias used to for the server certificate in the keystore. If not
							 | 
						||
| 
								 | 
							
								      specified the first key read in the keystore will be used.</p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>truststoreFile</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>The TrustStore file to use to validate client certificates.</p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>truststorePass</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>The password to access the TrustStore. This defaults to the value
							 | 
						||
| 
								 | 
							
								      of <code>keystorePass</code>.</p>
							 | 
						||
| 
								 | 
							
								    </td></tr><tr><td align="left" valign="center"><code>truststoreType</code></td><td align="left" valign="center">
							 | 
						||
| 
								 | 
							
								      <p>Add this element if your are using a different format for the
							 | 
						||
| 
								 | 
							
								      TrustStore then you are using for the KeyStore.</p>
							 | 
						||
| 
								 | 
							
								     </td></tr></table>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  <p>For more information, see the
							 | 
						||
| 
								 | 
							
								  <a href="../../ssl-howto.html">SSL Configuration HOW-TO</a>.</p>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  </blockquote></td></tr></table>
							 | 
						||
| 
								 | 
							
								  <table border="0" cellspacing="0" cellpadding="2"><tr><td bgcolor="#828DA6"><font color="#ffffff" face="arial,helvetica.sanserif"><a name="Connector Comparison"><strong>Connector Comparison</strong></a></font></td></tr><tr><td><blockquote>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    <p>Below is a small chart that shows how the connectors differentiate.</p>
							 | 
						||
| 
								 | 
							
								    <div align="left"><table cellspacing="4" cellpadding="0" border="0"><tr><td bgcolor="#023264" width="1" height="1"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#ffffff" height="1"><pre>
							 | 
						||
| 
								 | 
							
								                  Java Blocking Connector       Java Nio Blocking Connector       APR Connector
							 | 
						||
| 
								 | 
							
								    Classname         Http11Protocol                  Http11NioProtocol         Http11AprProtocol
							 | 
						||
| 
								 | 
							
								    Tomcat Version   3.x 4.x 5.x 6.x                       6.x                     5.5.x 6.x
							 | 
						||
| 
								 | 
							
								    Support Polling         NO                             YES                        YES
							 | 
						||
| 
								 | 
							
								    Polling Size           N/A                   Unlimited - Restricted by mem        Unlimited
							 | 
						||
| 
								 | 
							
								    Read HTTP Request     Blocking                     Blocking                       Blocking
							 | 
						||
| 
								 | 
							
								    Read HTTP Body        Blocking                     Blocking                       Blocking
							 | 
						||
| 
								 | 
							
								    Write HTTP Response   Blocking                     Blocking                       Blocking
							 | 
						||
| 
								 | 
							
								    SSL Support           Java SSL                     Java SSL                       OpenSSL
							 | 
						||
| 
								 | 
							
								    SSL Handshake         Blocking                     Non blocking                   Blocking
							 | 
						||
| 
								 | 
							
								    Max Connections       maxThreads                   See polling size               See polling size
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    </pre></td><td bgcolor="#023264" width="1"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr><tr><td bgcolor="#023264" width="1" height="1"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" height="1"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></td><td bgcolor="#023264" width="1" height="1"><img src="../../images/void.gif" width="1" height="1" vspace="0" hspace="0" border="0"></td></tr></table></div>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  </blockquote></td></tr></table>
							 | 
						||
| 
								 | 
							
								</blockquote></td></tr></table></td></tr><!--FOOTER SEPARATOR--><tr><td colspan="2"><hr noshade="noshade" size="1"></td></tr><!--PAGE FOOTER--><tr><td colspan="2"><div align="center"><font color="#525D76" size="-1"><em>
							 | 
						||
| 
								 | 
							
								        Copyright © 1999-2006, Apache Software Foundation
							 | 
						||
| 
								 | 
							
								        </em></font></div></td></tr></table></body></html>
							 |