You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2014/03/10 12:27:12 UTC

svn commit: r1575905 [4/4] - in /tomcat/trunk: ./ java/org/apache/coyote/ajp/ java/org/apache/coyote/http11/ java/org/apache/coyote/http11/upgrade/ java/org/apache/tomcat/util/net/ webapps/docs/ webapps/docs/config/

Modified: tomcat/trunk/webapps/docs/config/ajp.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/config/ajp.xml?rev=1575905&r1=1575904&r2=1575905&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/config/ajp.xml (original)
+++ tomcat/trunk/webapps/docs/config/ajp.xml Mon Mar 10 11:27:11 2014
@@ -23,7 +23,6 @@
   &project;
 
   <properties>
-    <author email="remm@apache.org">Remy Maucherat</author>
     <author email="yoavs@apache.org">Yoav Shapira</author>
     <author email="arjaquith@mindspring.com">Andrew R. Jaquith</author>
     <title>The AJP Connector</title>
@@ -63,6 +62,8 @@
   <p><b>Other native connectors supporting AJP may work, but are no longer
   supported.</b></p>
 
+  <p>Note: The NIO2 connector is experimental at this time.</p>
+
 </section>
 
 
@@ -174,6 +175,8 @@
         - blocking Java connector<br/>
         <code>org.apache.coyote.ajp.AjpNioProtocol</code>
         - non blocking Java connector.<br/>
+        <code>org.apache.coyote.ajp.AjpNio2Protocol</code>
+        - non blocking Java connector.<br/>
         <code>org.apache.coyote.ajp.AjpAprProtocol</code>
         - the APR/native connector.<br/>
         Custom implementations may also be used.<br/>
@@ -261,9 +264,9 @@
 
   <p>To use AJP, you must specify the protocol attribute (see 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>The standard AJP connectors (BIO, NIO, NIO2 and APR/native) all support
+  the following attributes in addition to the common Connector attributes
+  listed above.</p>
 
   <attributes>
 
@@ -343,8 +346,8 @@
       <p>The time that the private internal executor will wait for request
       processing threads to terminate before continuing with the process of
       stopping the connector. If not set, the default is <code>0</code> (zero)
-      for the BIO connector and <code>5000</code> (5 seconds) for the NIO and
-      APR/native connectors.</p>
+      for the BIO connector and <code>5000</code> (5 seconds) for the NIO, NIO2
+      and APR/native connectors.</p>
     </attribute>
 
     <attribute name="keepAliveTimeout" required="false">
@@ -366,7 +369,7 @@
       connector type. For BIO the default is the value of
       <strong>maxThreads</strong> unless an <a href="executor.html">Executor</a>
       is used in which case the default will be the value of maxThreads from the
-      executor. For NIO the default is <code>10000</code>.
+      executor. For NIO and NIO2 the default is <code>10000</code>.
       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
@@ -442,7 +445,7 @@
 
   <subsection name="Java TCP socket attributes">
 
-    <p>The BIO and NIO implementation support the following Java TCP socket
+    <p>The BIO, NIO and NIO2 implementation support the following Java TCP socket
     attributes in addition to the common Connector and HTTP attributes listed
     above.</p>
 
@@ -621,6 +624,73 @@
     </attributes>
   </subsection>
 
+  <subsection name="NIO2 specific configuration">
+
+    <p>The following attributes are specific to the NIO2 connector.</p>
+
+    <attributes>
+
+      <attribute name="useCaches" required="false">
+        <p>(bool)Use this attribute to enable or disable object caching to
+        reduce the amount of GC objects produced.
+        The default value is <code>false</code>.</p>
+      </attribute>
+
+      <attribute name="socket.directBuffer" required="false">
+        <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>
+      </attribute>
+
+      <attribute name="socket.appReadBufSize" required="false">
+        <p>(int)Each connection that is opened up in Tomcat get associated with
+        a read ByteBuffer. This attribute controls the size of this buffer. 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>
+      </attribute>
+
+      <attribute name="socket.appWriteBufSize" required="false">
+        <p>(int)Each connection that is opened up in Tomcat get associated with
+        a write ByteBuffer. This attribute controls the size of this buffer. 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>
+      </attribute>
+
+      <attribute name="socket.bufferPoolSize" required="false">
+        <p>(int)The NIO2 connector uses a class called Nio2Channel 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 Nio2Channel objects. Other values are
+        <code>-1</code> for unlimited cache and <code>0</code> for no cache.</p>
+      </attribute>
+
+      <attribute name="socket.processorCache" required="false">
+        <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> for unlimited cache and <code>0</code> for no cache.</p>
+      </attribute>
+
+      <attribute name="socket.socketWrapperCache" required="false">
+        <p>(int)Tomcat will cache SocketWrapper 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> for unlimited cache and <code>0</code> for no cache.</p>
+      </attribute>
+
+    </attributes>
+  </subsection>
+
   <subsection name="APR/native specific configuration">
 
     <p>The APR/native implementation supports the following attributes in
@@ -683,18 +753,21 @@
         <th />
         <th>Java Blocking Connector<br />BIO</th>
         <th>Java Nio Blocking Connector<br />NIO</th>
+        <th>Java Nio2 Blocking Connector<br />NIO</th>
         <th>APR/native Connector<br />APR</th>
       </tr>
       <tr>
         <th style="text-align: left;">Classname</th>
         <td><code class="noHighlight">AjpProtocol</code></td>
         <td><code class="noHighlight">AjpNioProtocol</code></td>
+        <td><code class="noHighlight">AjpNio2Protocol</code></td>
         <td><code class="noHighlight">AjpAprProtocol</code></td>
       </tr>
       <tr>
         <th style="text-align: left;">Tomcat Version</th>
         <td>3.x onwards</td>
         <td>7.x onwards</td>
+        <td>8.x onwards</td>
         <td>5.5.x onwards</td>
       </tr>
       <tr>
@@ -702,42 +775,49 @@
         <td>NO</td>
         <td>YES</td>
         <td>YES</td>
+        <td>YES</td>
       </tr>
       <tr>
         <th style="text-align: left;">Polling Size</th>
         <td>N/A</td>
         <td><code class="noHighlight">maxConnections</code></td>
         <td><code class="noHighlight">maxConnections</code></td>
+        <td><code class="noHighlight">maxConnections</code></td>
       </tr>
       <tr>
         <th style="text-align: left;">Read Request Headers</th>
         <td>Blocking</td>
         <td>Sim Blocking</td>
         <td>Blocking</td>
+        <td>Blocking</td>
       </tr>
       <tr>
         <th style="text-align: left;">Read Request Body</th>
         <td>Blocking</td>
         <td>Sim Blocking</td>
         <td>Blocking</td>
+        <td>Blocking</td>
       </tr>
       <tr>
         <th style="text-align: left;">Write Response</th>
         <td>Blocking</td>
         <td>Sim Blocking</td>
         <td>Blocking</td>
+        <td>Blocking</td>
       </tr>
       <tr>
         <th style="text-align: left;">Wait for next Request</th>
         <td>Blocking</td>
         <td>Non Blocking</td>
         <td>Non Blocking</td>
+        <td>Non Blocking</td>
       </tr>
       <tr>
         <th style="text-align: left;">Max Connections</th>
         <td><code class="noHighlight">maxConnections</code></td>
         <td><code class="noHighlight">maxConnections</code></td>
         <td><code class="noHighlight">maxConnections</code></td>
+        <td><code class="noHighlight">maxConnections</code></td>
       </tr>
     </table>
 

Modified: tomcat/trunk/webapps/docs/config/http.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/config/http.xml?rev=1575905&r1=1575904&r2=1575905&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/config/http.xml (original)
+++ tomcat/trunk/webapps/docs/config/http.xml Mon Mar 10 11:27:11 2014
@@ -62,6 +62,8 @@
   attribute).  Any further simultaneous requests will receive "connection
   refused" errors, until resources are available to process them.</p>
 
+  <p>Note: The NIO2 connector is experimental at this time.</p>
+
 </section>
 
 
@@ -171,6 +173,8 @@
               blocking Java connector<br/>
         <code>org.apache.coyote.http11.Http11NioProtocol</code> -
               non blocking Java connector<br/>
+        <code>org.apache.coyote.http11.Http11Nio2Protocol</code> -
+              non blocking Java connector<br/>
         <code>org.apache.coyote.http11.Http11AprProtocol</code> -
               the APR/native connector.<br/>
         Custom implementations may also be used.<br/>
@@ -259,9 +263,9 @@
 
   <subsection name="Standard Implementation">
 
-  <p>The standard HTTP connectors (BIO, NIO and APR/native) all support the
-  following attributes in addition to the common Connector attributes listed
-  above.</p>
+  <p>The standard HTTP connectors (BIO, NIO, NIO2 and APR/native) all support
+  the following attributes in addition to the common Connector attributes
+  listed above.</p>
 
   <attributes>
 
@@ -381,8 +385,8 @@
       <p>The time that the private internal executor will wait for request
       processing threads to terminate before continuing with the process of
       stopping the connector. If not set, the default is <code>0</code> (zero)
-      for the BIO connector and <code>5000</code> (5 seconds) for the NIO and
-      APR/native connectors.</p>
+      for the BIO connector and <code>5000</code> (5 seconds) for the NIO,
+      NIO2 and APR/native connectors.</p>
     </attribute>
 
     <attribute name="keepAliveTimeout" required="false">
@@ -405,7 +409,7 @@
       connector type. For BIO the default is the value of
       <strong>maxThreads</strong> unless an <a href="executor.html">Executor</a>
       is used in which case the default will be the value of maxThreads from the
-      executor. For NIO the default is <code>10000</code>.
+      executor. For NIO and NIO2 the default is <code>10000</code>.
       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
@@ -532,9 +536,9 @@
 
   <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>
+    <p>The BIO, NIO and NIO2 implementation support the following Java TCP
+    socket attributes in addition to the common Connector and HTTP attributes
+    listed above.</p>
 
     <attributes>
       <attribute name="socket.rxBufSize" required="false">
@@ -778,6 +782,95 @@
     </attributes>
   </subsection>
 
+  <subsection name="NIO2 specific configuration">
+
+    <p>The following attributes are specific to the NIO2 connector.</p>
+
+    <attributes>
+
+      <attribute name="useCaches" required="false">
+        <p>(bool)Use this attribute to enable or disable object caching to
+        reduce the amount of GC objects produced.
+        The default value is <code>false</code>.</p>
+      </attribute>
+
+      <attribute name="useComet" required="false">
+        <p>(bool)Whether to allow comet servlets or not. Default value is
+        <code>true</code>.</p>
+      </attribute>
+
+      <attribute name="useSendfile" required="false">
+        <p>(bool)Use this attribute to enable or disable sendfile capability.
+        The default value is <code>true</code>.</p>
+      </attribute>
+
+      <attribute name="socket.directBuffer" required="false">
+        <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>
+      </attribute>
+
+      <attribute name="socket.appReadBufSize" required="false">
+        <p>(int)Each connection that is opened up in Tomcat get associated with
+        a read ByteBuffer. This attribute controls the size of this buffer. 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>
+      </attribute>
+
+      <attribute name="socket.appWriteBufSize" required="false">
+        <p>(int)Each connection that is opened up in Tomcat get associated with
+        a write ByteBuffer. This attribute controls the size of this buffer. 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>
+      </attribute>
+
+      <attribute name="socket.bufferPoolSize" required="false">
+        <p>(int)The NIO2 connector uses a class called Nio2Channel that holds
+        elements linked to a socket. To reduce garbage collection, the NIO2
+        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 Nio2Channel objects. Other values are
+        <code>-1</code> for unlimited cache and <code>0</code> for no cache.</p>
+      </attribute>
+
+      <attribute name="socket.processorCache" required="false">
+        <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> for unlimited cache and <code>0</code> for no cache.</p>
+      </attribute>
+
+      <attribute name="socket.socketWrapperCache" required="false">
+        <p>(int)Tomcat will cache SocketWrapper 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> for unlimited cache and <code>0</code> for no cache.</p>
+      </attribute>
+
+      <attribute name="oomParachute" required="false">
+        <p>(int)The NIO2 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> represents
+        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>
+      </attribute>
+    </attributes>
+  </subsection>
+
   <subsection name="APR/native specific configuration">
 
     <p>The following attributes are specific to the APR/native connector.</p>
@@ -913,7 +1006,7 @@
   attributes to the values <code>https</code> and <code>true</code>
   respectively, to pass correct information to the servlets.</p>
 
-  <p>The BIO and NIO connectors use the JSSE SSL whereas the APR/native
+  <p>The BIO, NIO and NIO2 connectors use the JSSE SSL whereas the APR/native
   connector uses OpenSSL. Therefore, in addition to using different attributes
   to configure SSL, the APR/native connector also requires keys and certificates
   to be provided in a different format.</p>
@@ -921,9 +1014,9 @@
   <p>For more information, see the
   <a href="../ssl-howto.html">SSL Configuration HOW-TO</a>.</p>
 
-  <subsection name="SSL Support - BIO and NIO">
+  <subsection name="SSL Support - BIO, NIO and NIO2">
 
-  <p>The BIO and NIO connectors use the following attributes to configure SSL:
+  <p>The BIO, NIO and NIO2 connectors use the following attributes to configure SSL:
   </p>
 
   <attributes>
@@ -1268,18 +1361,21 @@
         <th />
         <th>Java Blocking Connector<br />BIO</th>
         <th>Java Nio Blocking Connector<br />NIO</th>
+        <th>Java Nio2 Blocking Connector<br />NIO</th>
         <th>APR/native Connector<br />APR</th>
       </tr>
       <tr>
         <th style="text-align: left;">Classname</th>
         <td><code class="noHighlight">Http11Protocol</code></td>
         <td><code class="noHighlight">Http11NioProtocol</code></td>
+        <td><code class="noHighlight">Http11Nio2Protocol</code></td>
         <td><code class="noHighlight">Http11AprProtocol</code></td>
       </tr>
       <tr>
         <th style="text-align: left;">Tomcat Version</th>
         <td>3.x onwards</td>
         <td>6.x onwards</td>
+        <td>8.x onwards</td>
         <td>5.5.x onwards</td>
       </tr>
       <tr>
@@ -1287,17 +1383,20 @@
         <td>NO</td>
         <td>YES</td>
         <td>YES</td>
+        <td>YES</td>
       </tr>
       <tr>
         <th style="text-align: left;">Polling Size</th>
         <td>N/A</td>
         <td><code class="noHighlight">maxConnections</code></td>
         <td><code class="noHighlight">maxConnections</code></td>
+        <td><code class="noHighlight">maxConnections</code></td>
       </tr>
       <tr>
         <th style="text-align: left;">Read HTTP Request</th>
         <td>Blocking</td>
         <td>Non Blocking</td>
+        <td>Non Blocking</td>
         <td>Blocking</td>
       </tr>
       <tr>
@@ -1305,29 +1404,34 @@
         <td>Blocking</td>
         <td>Sim Blocking</td>
         <td>Blocking</td>
+        <td>Blocking</td>
       </tr>
       <tr>
         <th style="text-align: left;">Write HTTP Response</th>
         <td>Blocking</td>
         <td>Sim Blocking</td>
         <td>Blocking</td>
+        <td>Blocking</td>
       </tr>
       <tr>
         <th style="text-align: left;">Wait for next Request</th>
         <td>Blocking</td>
         <td>Non Blocking</td>
         <td>Non Blocking</td>
+        <td>Non Blocking</td>
       </tr>
       <tr>
         <th style="text-align: left;">SSL Support</th>
         <td>Java SSL</td>
         <td>Java SSL</td>
+        <td>Java SSL</td>
         <td>OpenSSL</td>
       </tr>
       <tr>
         <th style="text-align: left;">SSL Handshake</th>
         <td>Blocking</td>
         <td>Non blocking</td>
+        <td>Non blocking</td>
         <td>Blocking</td>
       </tr>
       <tr>
@@ -1335,6 +1439,7 @@
         <td><code class="noHighlight">maxConnections</code></td>
         <td><code class="noHighlight">maxConnections</code></td>
         <td><code class="noHighlight">maxConnections</code></td>
+        <td><code class="noHighlight">maxConnections</code></td>
       </tr>
     </table>
 



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org