<p>The native connectors supported with this Tomcat release are:
<ul>
- <li>JK 1.2.x with any of the supported servers</li>
+ <li>JK 1.2.x with any of the supported servers. See
+ <a href="http://tomcat.apache.org/connectors-doc/">the JK docs</a>
+ for details.</li>
<li>mod_proxy on Apache httpd 2.x (included by default in Apache HTTP
Server 2.2), with AJP enabled: see
<a href="http://httpd.apache.org/docs/2.2/mod/mod_proxy_ajp.html">the
mechanism described above, the following values may be used:<br/>
<code>org.apache.coyote.ajp.AjpProtocol</code>
- blocking Java connector<br/>
+ <code>org.apache.coyote.ajp.AjpNioProtocol</code>
+ - non blocking Java connector.<br/>
<code>org.apache.coyote.ajp.AjpAprProtocol</code>
- the APR/native connector.<br/>
- Custom implementations may also be used.</p>
+ Custom implementations may also be used.<br/>
+ Take a look at our <a href="#Connector Comparison">Connector
+ Comparison</a> chart.
+ </p>
+ <p>
+ <strong><font color="red">WARNING</font></strong>: The NIO connector for AJP
+ is experimentaland not yet fully functional.
+ </p>
</attribute>
<attribute name="proxyName" required="false">
<p>To use AJP, you must specify the protocol attribute (see above).</p>
- <p><strong>These implementations support the AJP 1.3 protocol.</strong></p>
-
- <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>
+ <p>The standard AJP connectors (BIO, NIO and APR/native) all support the
+ following attributes in addition to the common Connector attributes listed
+ above.</p>
+
+ <p><strong><font color="red">WARNING</font></strong>: The NIO connector for AJP
+ is experimentaland not yet fully functional.</p>
<attributes>
falls below this value. The operating system may still accept
connections based on the <code>acceptCount</code> setting. Default value
varies by connector type. For BIO the default is the value of
- <strong>maxThreads</strong>.For APR/native, the default is
+ <strong>maxThreads</strong>. For APR/native, the default is
<code>8192</code>.</p>
<p>Note that for APR/native on Windows, the configured value will be
reduced to the highest multiple of 1024 that is less than or equal to
</subsection>
- <subsection name="BIO specific configuration">
-
- <p>The BIO implementation supports the following attributes in addition to
- the common Connector and AJP attributes listed above.</p>
+ <subsection name="Java TCP socket attributes">
+
+ <p>The BIO and NIO implementation support the following Java TCP socket
+ attributes in addition to the common Connector and HTTP attributes listed
+ above.</p>
<attributes>
- <attribute name="maxConnections" required="false">
- <p>The maximum number of connections that the server will accept and
- process at any given time. When this number has been reached, the server
- will not accept any more connections until the number of connections
- falls below this value. The operating system may still accept
- connections based on the <code>acceptCount</code> setting. Default value
- is <code>10000</code>.</p>
- </attribute>
<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 name="socket.soTimeout" required="false">
<p>This is equivalent to standard attribute
<strong>connectionTimeout</strong>.</p>
- </attribute>
+ </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
+ <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>
<attribute name="socket.performanceConnectionTime" required="false">
<p>(int)The first value for the performance settings. See
<a href="http://download.oracle.com/javase/6/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>
<attribute name="socket.performanceLatency" required="false">
<p>(int)The second value for the performance settings. See
<a href="http://download.oracle.com/javase/6/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>
<attribute name="socket.performanceBandwidth" required="false">
<p>(int)The third value for the performance settings. See
<a href="http://download.oracle.com/javase/6/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>
<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>
<a href="../proxy-howto.html">Proxy Support HOW-TO</a>.</p>
</subsection>
+
+ <subsection name="Connector Comparison">
+
+ <p><strong><font color="red">WARNING</font></strong>: The NIO connector for AJP
+ is experimentaland not yet fully functional.</p>
+ <p>Below is a small chart that shows how the connectors differentiate.</p>
+ <source>
+ Java Blocking Connector Java Nio Blocking Connector APR/native Connector
+ BIO NIO APR
+ Classname AjpProtocol AjpNioProtocol AjpAprProtocol
+ Tomcat Version 3.x onwards 7.x onwards 5.5.x onwards
+ Support Polling NO YES YES
+ Polling Size N/A maxConnections maxConnections
+ Read Request Headers Blocking Non Blocking Blocking
+ Read Request Body Blocking Sim Blocking Blocking
+ Write Response Blocking Sim Blocking Blocking
+ Wait for next Request Blocking Non Blocking Non Blocking
+ Max Connections maxConnections maxConnections maxConnections
+
+ </source>
+
+ </subsection>
</section>