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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]