You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by fh...@apache.org on 2007/02/15 00:44:28 UTC

svn commit: r507744 - in /tomcat/tc6.0.x/trunk: java/org/apache/tomcat/util/net/SocketProperties.java webapps/docs/config/http.xml

Author: fhanik
Date: Wed Feb 14 15:44:27 2007
New Revision: 507744

URL: http://svn.apache.org/viewvc?view=rev&rev=507744
Log:
Added in documentation specific to the NIO connector and a small connector comparison chart

Modified:
    tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/SocketProperties.java
    tomcat/tc6.0.x/trunk/webapps/docs/config/http.xml

Modified: tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/SocketProperties.java
URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/SocketProperties.java?view=diff&rev=507744&r1=507743&r2=507744
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/SocketProperties.java (original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/SocketProperties.java Wed Feb 14 15:44:27 2007
@@ -37,9 +37,9 @@
     protected int bufferPoolSize = 1024*1024*100;
     
     /**
-     * TCP_NO_DELAY option, default is false
+     * TCP_NO_DELAY option, default is true
      */
-    protected boolean tcpNoDelay = false;
+    protected boolean tcpNoDelay = true;
     /**
      * SO_KEEPALIVE option, default is false
      */

Modified: tomcat/tc6.0.x/trunk/webapps/docs/config/http.xml
URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/webapps/docs/config/http.xml?view=diff&rev=507744&r1=507743&r2=507744
==============================================================================
--- tomcat/tc6.0.x/trunk/webapps/docs/config/http.xml (original)
+++ tomcat/tc6.0.x/trunk/webapps/docs/config/http.xml Wed Feb 14 15:44:27 2007
@@ -118,9 +118,11 @@
         <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/>
-        The configuration for both Java connectors are identical, both for http and https. 
-        For more information on the APR connector, please 
+        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>
     </attribute>
 
@@ -383,6 +385,76 @@
   </attributes>
 
   </subsection>
+  
+    <subsection name="Nio Implementation">
+
+    <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 -Djava.net.preferIPv4Stack=true value to your command line</p>
+
+    <attributes>
+      <attribute name="socket.directBuffer" required="false">
+        <p>Boolean value, whether to use direct ByteBuffers or java mapped ByteBuffers. Default is <code>true</code></p>
+      </attribute>
+      <attribute name="socket.rxBufSize" required="false">
+        <p>The socket receive buffer (SO_RCVBUF) size in bytes. Default value is 25188</p>
+      </attribute>
+      <attribute name="socket.txBufSize" required="false">
+        <p>The socket send buffer (SO_SNDBUF) size in bytes. Default value is 43800</p>
+      </attribute>
+      <attribute name="socket.bufferPool" required="false">
+        <p>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 500, and represents that the cache will hold 500 NioChannel objects.
+           Other values are -1. unlimited cache, and 0, no cache.</p>
+      </attribute>
+      <attribute name="socket.bufferPoolSize" required="false">
+        <p>The NioChannel pool can also be size based, not used object based. The size is calculated as follows:<br/>
+        NioChannel buffer size = read buffer size + write buffer size<br/>
+        SecureNioChannel buffer size = application read buffer size + application write buffer size + network read buffer size + network write buffer size<br/>
+        The value is in bytes, the default value is 1024*1024*100 (100MB)
+        </p>
+      </attribute>
+      <attribute name="socket.tcpNoDelay" required="false">
+        <p>same as the standard setting <code>tcpNoDelay</code>. Default value is false</p>
+      </attribute>
+      <attribute name="socket.soKeepAlive" required="false">
+        <p>Boolean value for the socket's keep alive setting (SO_KEEPALIVE). Default is <code>false</code>. </p>
+      </attribute>
+      <attribute name="socket.ooBInline" required="false">
+        <p>Boolean value for the socket OOBINLINE setting. Default value is <code>true</code></p>
+      </attribute>
+      <attribute name="socket.soReuseAddress" required="false">
+        <p>Boolean value for the sockets reuse address option (SO_REUSEADDR). Default value is <code>true</code></p>
+      </attribute>
+      <attribute name="socket.soLingerOn" required="false">
+        <p>Boolean value for the sockets so linger option (SO_LINGER). Default value is <code>true</code>.
+           This option is paired with the soLingerTime value.</p>
+      </attribute>
+      <attribute name="socket.soLingerTime" required="false">
+        <p>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>
+      </attribute>
+      <attribute name="socket.soTimeout" required="false">
+        <p>Value in milliseconds for the sockets read timeout (SO_TIMEOUT). Default value is <code>5000</code> milliseconds.</p>
+      </attribute>      
+      <attribute name="socket.soTrafficClass" required="false">
+        <p>Value between 0 and 255 for the traffic class on the socket, <code>0x04 | 0x08 | 0x010</code></p>
+      </attribute>      
+      <attribute name="socket.performanceConnectionTime" required="false">
+        <p>The first value for the performance settings. Default is 1, 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>
+      </attribute>      
+      <attribute name="socket.performanceLatency" required="false">
+        <p>The second value for the performance settings. Default is 0, 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>
+      </attribute>      
+      <attribute name="socket.performanceBandwidth" required="false">
+        <p>The third value for the performance settings. Default is 1, 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>
+      </attribute>      
+    </attributes>
+  </subsection>
 
 </section>
 
@@ -434,6 +506,7 @@
   </subsection>
 
 
+
   <subsection name="SSL Support">
 
   <p>You can enable SSL support for a particular instance of this
@@ -514,8 +587,26 @@
   <a href="../ssl-howto.html">SSL Configuration HOW-TO</a>.</p>
 
   </subsection>
+  <subsection name="Connector Comparison">
 
+    <p>Below is a small chart that shows how the connectors differentiate.</p>
+    <source>
+                  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        1024
+    Read HTTP Request     Blocking                     Non Blocking                   Blocking
+    Read HTTP Body        Blocking                     Blocking                       Blocking
+    Write HTTP Response   Blocking                     Blocking                       Blocking
+    SSL Support           Java SSL                     Java SSL                       Open SSL
+    SSL Handshake         Blocking                     Non blocking                   Blocking
+    Max Connections       maxThreads                   See polling size               See polling size
+    
+    
+    </source>
 
+  </subsection>
 </section>
 
 



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


Re: svn commit: r507744 - in /tomcat/tc6.0.x/trunk: java/org/apache/tomcat/util/net/SocketProperties.java webapps/docs/config/http.xml

Posted by Filip Hanik - Dev Lists <de...@hanik.com>.
Remy Maucherat wrote:
> fhanik@apache.org wrote:
>> +    Polling Size           N/A                   Unlimited - 
>> Restricted by mem        1024
>
> There's no limit to the amount of sockets which may be put in pollers 
> in the APR connector either (it can use multiple pollers on platforms 
> where it's limited to 1024).
aah, got it, so 1024 per poller is the max?

so the max is unlimited,
I will correct
>
> Rémy
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
>
>
>


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


Re: svn commit: r507744 - in /tomcat/tc6.0.x/trunk: java/org/apache/tomcat/util/net/SocketProperties.java webapps/docs/config/http.xml

Posted by Filip Hanik - Dev Lists <de...@hanik.com>.
Remy Maucherat wrote:
> fhanik@apache.org wrote:
>> +    Polling Size           N/A                   Unlimited - 
>> Restricted by mem        1024
>
> There's no limit to the amount of sockets which may be put in pollers 
> in the APR connector either (it can use multiple pollers on platforms 
> where it's limited to 1024).
ignore my prev response, didn't read the code properly
Filip
>
> Rémy
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
>
>
>


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


Re: svn commit: r507744 - in /tomcat/tc6.0.x/trunk: java/org/apache/tomcat/util/net/SocketProperties.java webapps/docs/config/http.xml

Posted by Remy Maucherat <re...@apache.org>.
fhanik@apache.org wrote:
> +    Polling Size           N/A                   Unlimited - Restricted by mem        1024

There's no limit to the amount of sockets which may be put in pollers in 
the APR connector either (it can use multiple pollers on platforms where 
it's limited to 1024).

Rémy

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