You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2014/11/04 16:53:35 UTC
svn commit: r1636618 - in /tomcat/trunk: ./
java/org/apache/catalina/connector/ java/org/apache/coyote/
java/org/apache/coyote/ajp/ java/org/apache/coyote/http11/
java/org/apache/coyote/http11/upgrade/ java/org/apache/tomcat/util/net/
test/org/apache/c...
Author: markt
Date: Tue Nov 4 15:53:34 2014
New Revision: 1636618
URL: http://svn.apache.org/r1636618
Log:
First pass at removing the BIO code. Some unused/unnecessary code remains and will be removed next.
Removed:
tomcat/trunk/java/org/apache/coyote/ajp/AjpProcessor.java
tomcat/trunk/java/org/apache/coyote/ajp/AjpProtocol.java
tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java
tomcat/trunk/java/org/apache/coyote/http11/Http11Protocol.java
tomcat/trunk/java/org/apache/coyote/http11/InternalInputBuffer.java
tomcat/trunk/java/org/apache/coyote/http11/InternalOutputBuffer.java
tomcat/trunk/java/org/apache/coyote/http11/upgrade/BioProcessor.java
tomcat/trunk/java/org/apache/coyote/http11/upgrade/BioServletInputStream.java
tomcat/trunk/java/org/apache/coyote/http11/upgrade/BioServletOutputStream.java
tomcat/trunk/java/org/apache/tomcat/util/net/JIoEndpoint.java
Modified:
tomcat/trunk/BUILDING.txt
tomcat/trunk/build.properties.default
tomcat/trunk/build.xml
tomcat/trunk/java/org/apache/catalina/connector/InputBuffer.java
tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java
tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java
tomcat/trunk/test/org/apache/catalina/mbeans/TestRegistration.java
tomcat/trunk/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java
tomcat/trunk/test/org/apache/coyote/ajp/TestAbstractAjpProcessor.java
tomcat/trunk/test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java
tomcat/trunk/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java
tomcat/trunk/webapps/docs/changelog.xml
tomcat/trunk/webapps/docs/config/ajp.xml
tomcat/trunk/webapps/docs/config/http.xml
tomcat/trunk/webapps/docs/manager-howto.xml
tomcat/trunk/webapps/docs/ssl-howto.xml
tomcat/trunk/webapps/docs/web-socket-howto.xml
Modified: tomcat/trunk/BUILDING.txt
URL: http://svn.apache.org/viewvc/tomcat/trunk/BUILDING.txt?rev=1636618&r1=1636617&r2=1636618&view=diff
==============================================================================
--- tomcat/trunk/BUILDING.txt (original)
+++ tomcat/trunk/BUILDING.txt Tue Nov 4 15:53:34 2014
@@ -292,15 +292,14 @@ directory:
output/build/logs
-By default the testsuite is run four times to test 4 different
-implementations of Tomcat connectors: BIO, NIO, NIO2 and APR. (If you are not
+By default the testsuite is run three times to test 3 different
+implementations of Tomcat connectors: NIO, NIO2 and APR. (If you are not
familiar with Tomcat connectors, see config/http.html in documentation for
details).
-The 4 runs are enabled and disabled individually by the following
+The 3 runs are enabled and disabled individually by the following
properties, which all are "true" by default:
- execute.test.bio=true
execute.test.nio=true
execute.test.nio2=true
execute.test.apr=true
Modified: tomcat/trunk/build.properties.default
URL: http://svn.apache.org/viewvc/tomcat/trunk/build.properties.default?rev=1636618&r1=1636617&r2=1636618&view=diff
==============================================================================
--- tomcat/trunk/build.properties.default (original)
+++ tomcat/trunk/build.properties.default Tue Nov 4 15:53:34 2014
@@ -32,7 +32,6 @@ version.suffix=-dev
# ----- Build control flags -----
# Note enabling validation uses Checkstyle which is LGPL licensed
execute.validate=false
-execute.test.bio=true
execute.test.nio=true
execute.test.nio2=true
# Still requires APR/native library to be present
Modified: tomcat/trunk/build.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/build.xml?rev=1636618&r1=1636617&r2=1636618&view=diff
==============================================================================
--- tomcat/trunk/build.xml (original)
+++ tomcat/trunk/build.xml Tue Nov 4 15:53:34 2014
@@ -1337,17 +1337,11 @@
<property name="junit.formatter.extension" value=".txt" />
<target name="test" description="Runs the JUnit test cases"
- depends="test-bio,test-nio,test-nio2,test-apr,cobertura-report" >
+ depends="test-nio,test-nio2,test-apr,cobertura-report" >
<fail if="test.result.error" message='Some tests completed with an Error. See ${tomcat.build}/logs for details, search for "FAILED".' />
<fail if="test.result.failure" message='Some tests completed with a Failure. See ${tomcat.build}/logs for details, search for "FAILED".' />
</target>
- <target name="test-bio" description="Runs the JUnit test cases for BIO. Does not stop on errors."
- depends="test-compile,deploy,cobertura-instrument,test-openssl-exists" if="${execute.test.bio}">
- <runtests protocol="org.apache.coyote.http11.Http11Protocol"
- extension=".BIO" />
- </target>
-
<target name="test-nio" description="Runs the JUnit test cases for NIO. Does not stop on errors."
depends="test-compile,deploy,cobertura-instrument,test-openssl-exists" if="${execute.test.nio}">
<runtests protocol="org.apache.coyote.http11.Http11NioProtocol"
@@ -1498,7 +1492,7 @@
</target>
<target name="cobertura-report" if="${test.cobertura}"
- depends="test-bio,test-nio,test-nio2,test-apr"
+ depends="test-nio,test-nio2,test-apr"
description="Creates report from gathered Cobertura results">
<cobertura-report srcdir="${basedir}/java" destdir="${cobertura.out}"
Modified: tomcat/trunk/java/org/apache/catalina/connector/InputBuffer.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/InputBuffer.java?rev=1636618&r1=1636617&r2=1636618&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/connector/InputBuffer.java (original)
+++ tomcat/trunk/java/org/apache/catalina/connector/InputBuffer.java Tue Nov 4 15:53:34 2014
@@ -284,8 +284,6 @@ public class InputBuffer extends Reader
if (coyoteRequest.getReadListener() == null) {
throw new IllegalStateException("not in non blocking mode.");
}
- // Need to check is finished before we check available() as BIO always
- // returns 1 for isAvailable()
if (isFinished()) {
// If this is a non-container thread, need to trigger a read
// which will eventually lead to a call to onAllDataRead() via a
Modified: tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java?rev=1636618&r1=1636617&r2=1636618&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java (original)
+++ tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java Tue Nov 4 15:53:34 2014
@@ -84,7 +84,7 @@ public abstract class AbstractProtocol<S
/**
* Endpoint that provides low-level network I/O - must be matched to the
- * ProtocolHandler implementation (ProtocolHandler using BIO, requires BIO
+ * ProtocolHandler implementation (ProtocolHandler using NIO, requires NIO
* Endpoint etc.).
*/
protected AbstractEndpoint<S> endpoint = null;
Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java?rev=1636618&r1=1636617&r2=1636618&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java Tue Nov 4 15:53:34 2014
@@ -690,7 +690,7 @@ public abstract class AbstractEndpoint<S
* onWritePossible() and/or onDataAvailable() as appropriate are made by
* the container.
*
- * Processing the dispatches requires (for BIO and APR/native at least)
+ * Processing the dispatches requires (for APR/native at least)
* that the socket has been added to the waitingRequests queue. This may
* not have occurred by the time that the non-container thread completes
* triggering the call to this method. Therefore, the coded syncs on the
Modified: tomcat/trunk/test/org/apache/catalina/mbeans/TestRegistration.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/mbeans/TestRegistration.java?rev=1636618&r1=1636617&r2=1636618&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/mbeans/TestRegistration.java (original)
+++ tomcat/trunk/test/org/apache/catalina/mbeans/TestRegistration.java Tue Nov 4 15:53:34 2014
@@ -170,11 +170,6 @@ public class TestRegistration extends To
combinedRealm.addRealm(nullRealm);
ctx.setRealm(combinedRealm);
- // Disable keep-alive otherwise request processing threads in keep-alive
- // won't shut down fast enough with BIO to de-register the processor
- // triggering a test failure
- tomcat.getConnector().setAttribute("maxKeepAliveRequests", Integer.valueOf(1));
-
tomcat.start();
getUrl("http://localhost:" + getPort());
@@ -195,12 +190,10 @@ public class TestRegistration extends To
String protocol = tomcat.getConnector().getProtocolHandlerClassName();
if (protocol.indexOf("Nio2") > 0) {
protocol = "nio2";
- } else if (protocol.indexOf("Nio") > 0) {
- protocol = "nio";
} else if (protocol.indexOf("Apr") > 0) {
protocol = "apr";
} else {
- protocol = "bio";
+ protocol = "nio";
}
String index = tomcat.getConnector().getProperty("nameIndex").toString();
ArrayList<String> expected = new ArrayList<>(Arrays.asList(basicMBeanNames()));
Modified: tomcat/trunk/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java?rev=1636618&r1=1636617&r2=1636618&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java (original)
+++ tomcat/trunk/test/org/apache/catalina/nonblocking/TestNonBlockingAPI.java Tue Nov 4 15:53:34 2014
@@ -41,7 +41,6 @@ import javax.servlet.http.HttpServletReq
import javax.servlet.http.HttpServletResponse;
import org.junit.Assert;
-import org.junit.Assume;
import org.junit.Test;
import org.apache.catalina.Context;
@@ -91,12 +90,6 @@ public class TestNonBlockingAPI extends
@Test(expected=IOException.class)
public void testNonBlockingReadIgnoreIsReady() throws Exception {
- // TODO Investigate options to get this test to pass with the HTTP BIO
- // connector.
- Assume.assumeFalse(
- "Skipping as this test requires true non-blocking IO",
- getTomcatInstance().getConnector().getProtocol()
- .equals("org.apache.coyote.http11.Http11Protocol"));
doTestNonBlockingRead(true);
}
Modified: tomcat/trunk/test/org/apache/coyote/ajp/TestAbstractAjpProcessor.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/coyote/ajp/TestAbstractAjpProcessor.java?rev=1636618&r1=1636617&r2=1636618&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/coyote/ajp/TestAbstractAjpProcessor.java (original)
+++ tomcat/trunk/test/org/apache/coyote/ajp/TestAbstractAjpProcessor.java Tue Nov 4 15:53:34 2014
@@ -46,17 +46,15 @@ public class TestAbstractAjpProcessor ex
// Has a protocol been specified
String protocol = System.getProperty("tomcat.test.protocol");
- // Use BIO by default
+ // Use NIO by default
if (protocol == null) {
- protocol = "org.apache.coyote.ajp.AjpProtocol";
+ protocol = "org.apache.coyote.ajp.AjpNioProtocol";
} else if (protocol.contains("Nio2")) {
protocol = "org.apache.coyote.ajp.AjpNio2Protocol";
- } else if (protocol.contains("Nio")) {
- protocol = "org.apache.coyote.ajp.AjpNioProtocol";
} else if (protocol.contains("Apr")) {
protocol = "org.apache.coyote.ajp.AjpAprProtocol";
} else {
- protocol = "org.apache.coyote.ajp.AjpProtocol";
+ protocol = "org.apache.coyote.ajp.AjpNioProtocol";
}
return protocol;
Modified: tomcat/trunk/test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java?rev=1636618&r1=1636617&r2=1636618&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java (original)
+++ tomcat/trunk/test/org/apache/tomcat/websocket/TestWebSocketFrameClientSSL.java Tue Nov 4 15:53:34 2014
@@ -28,7 +28,6 @@ import javax.websocket.Session;
import javax.websocket.WebSocketContainer;
import org.junit.Assert;
-import org.junit.Assume;
import org.junit.Test;
import org.apache.catalina.Context;
@@ -92,13 +91,6 @@ public class TestWebSocketFrameClientSSL
@Test
public void testBug56032() throws Exception {
- // TODO Investigate options to get this test to pass with the HTTP BIO
- // connector.
- Assume.assumeFalse(
- "Skip this test on BIO. TODO: investigate options to make it pass with HTTP BIO connector",
- getTomcatInstance().getConnector().getProtocol()
- .equals("org.apache.coyote.http11.Http11Protocol"));
-
Tomcat tomcat = getTomcatInstance();
// No file system docBase required
Context ctx = tomcat.addContext("", null);
Modified: tomcat/trunk/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java?rev=1636618&r1=1636617&r2=1636618&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java (original)
+++ tomcat/trunk/test/org/apache/tomcat/websocket/TestWsWebSocketContainer.java Tue Nov 4 15:53:34 2014
@@ -45,14 +45,12 @@ import javax.websocket.server.ServerEndp
import javax.websocket.server.ServerEndpointConfig;
import org.junit.Assert;
-import org.junit.Assume;
import org.junit.Test;
import org.apache.catalina.Context;
import org.apache.catalina.servlets.DefaultServlet;
import org.apache.catalina.startup.Tomcat;
import org.apache.catalina.startup.TomcatBaseTest;
-import org.apache.coyote.http11.Http11Protocol;
import org.apache.tomcat.util.net.TesterSupport;
import org.apache.tomcat.websocket.TesterMessageCountClient.BasicBinary;
import org.apache.tomcat.websocket.TesterMessageCountClient.BasicHandler;
@@ -389,11 +387,6 @@ public class TestWsWebSocketContainer ex
private void doTestWriteTimeoutServer(boolean setTimeoutOnContainer)
throws Exception {
- // This will never work for BIO
- Assume.assumeFalse(
- "Skipping test. This feature will never work for BIO connector.",
- getProtocol().equals(Http11Protocol.class.getName()));
-
/*
* Note: There are all sorts of horrible uses of statics in this test
* because the API uses classes and the tests really need access
Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1636618&r1=1636617&r2=1636618&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Tue Nov 4 15:53:34 2014
@@ -50,13 +50,22 @@
-->
<section name="Tomcat 9.0.0">
<subsection name="General">
- <add>
- Make Java 8 the minimum required version to build and run Tomcat 9.
- (markt)
- </add>
- <update>
- Remove support for Comet. (markt)
- </update>
+ <changelog>
+ <add>
+ Make Java 8 the minimum required version to build and run Tomcat 9.
+ (markt)
+ </add>
+ <update>
+ Remove support for Comet. (markt)
+ </update>
+ </changelog>
+ </subsection>
+ <subsection name="Coyote">
+ <changelog>
+ <update>
+ Remove support for the HTTP BIO and AJP BIO connectors. (markt)
+ </update>
+ </changelog>
</subsection>
</section>
</body>
Modified: tomcat/trunk/webapps/docs/config/ajp.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/config/ajp.xml?rev=1636618&r1=1636617&r2=1636618&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/config/ajp.xml (original)
+++ tomcat/trunk/webapps/docs/config/ajp.xml Tue Nov 4 15:53:34 2014
@@ -262,9 +262,9 @@
<p>To use AJP, you must specify the protocol attribute (see 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>
+ <p>The standard AJP connectors (NIO, NIO2 and APR/native) all support the
+ following attributes in addition to the common Connector attributes listed
+ above.</p>
<attributes>
@@ -343,9 +343,8 @@
<attribute name="executorTerminationTimeoutMillis" required="false">
<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, NIO2
- and APR/native connectors.</p>
+ stopping the connector. If not set, the default is <code>5000</code> (5
+ seconds).</p>
</attribute>
<attribute name="keepAliveTimeout" required="false">
@@ -364,10 +363,7 @@
start accepting and processing new connections again. Note that once the
limit has been reached, the operating system may still accept connections
based on the <code>acceptCount</code> setting. The default value varies by
- 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 and NIO2 the default is <code>10000</code>.
+ connector type. 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
@@ -443,7 +439,7 @@
<subsection name="Java TCP socket attributes">
- <p>The BIO, NIO and NIO2 implementation support the following Java TCP socket
+ <p>The NIO and NIO2 implementation support the following Java TCP socket
attributes in addition to the common Connector and HTTP attributes listed
above.</p>
@@ -749,63 +745,54 @@
<table class="defaultTable" style="text-align: center;">
<tr>
<th />
- <th>Java Blocking Connector<br />BIO</th>
<th>Java Nio Blocking Connector<br />NIO</th>
<th>Java Nio2 Blocking Connector<br />NIO2</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>
<th style="text-align: left;">Support Polling</th>
- <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>
@@ -815,7 +802,6 @@
<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=1636618&r1=1636617&r2=1636618&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/config/http.xml (original)
+++ tomcat/trunk/webapps/docs/config/http.xml Tue Nov 4 15:53:34 2014
@@ -261,9 +261,9 @@
<subsection name="Standard Implementation">
- <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>
+ <p>The standard HTTP connectors (NIO, NIO2 and APR/native) all support the
+ following attributes in addition to the common Connector attributes listed
+ above.</p>
<attributes>
@@ -382,9 +382,8 @@
<attribute name="executorTerminationTimeoutMillis" required="false">
<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,
- NIO2 and APR/native connectors.</p>
+ stopping the connector. If not set, the default is <code>5000</code> (5
+ seconds).</p>
</attribute>
<attribute name="keepAliveTimeout" required="false">
@@ -404,10 +403,7 @@
start accepting and processing new connections again. Note that once the
limit has been reached, the operating system may still accept connections
based on the <code>acceptCount</code> setting. The default value varies by
- 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 and NIO2 the default is <code>10000</code>.
+ connector type. 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
@@ -552,7 +548,7 @@
<subsection name="Java TCP socket attributes">
- <p>The BIO, NIO and NIO2 implementation support the following Java TCP
+ <p>The NIO and NIO2 implementation support the following Java TCP
socket attributes in addition to the common Connector and HTTP attributes
listed above.</p>
@@ -626,24 +622,6 @@
</attributes>
</subsection>
- <subsection name="BIO specific configuration">
-
- <p>The following attributes are specific to the BIO connector.</p>
-
- <attributes>
-
- <attribute name="disableKeepAlivePercentage" required="false">
- <p>The percentage of processing threads that have to be in use before
- HTTP keep-alives are disabled to improve scalability. Values less than
- <code>0</code> will be changed to <code>0</code> and values greater than
- <code>100</code> will be changed to <code>100</code>. If not specified,
- the default value is <code>75</code>.</p>
- </attribute>
-
- </attributes>
-
- </subsection>
-
<subsection name="NIO specific configuration">
<p>The following attributes are specific to the NIO connector.</p>
@@ -1026,7 +1004,7 @@
attributes to the values <code>https</code> and <code>true</code>
respectively, to pass correct information to the servlets.</p>
- <p>The BIO, NIO and NIO2 connectors use the JSSE SSL whereas the APR/native
+ <p>The 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>
@@ -1034,9 +1012,9 @@
<p>For more information, see the
<a href="../ssl-howto.html">SSL Configuration HOW-TO</a>.</p>
- <subsection name="SSL Support - BIO, NIO and NIO2">
+ <subsection name="SSL Support - NIO and NIO2">
- <p>The BIO, NIO and NIO2 connectors use the following attributes to configure SSL:
+ <p>The NIO and NIO2 connectors use the following attributes to configure SSL:
</p>
<attributes>
@@ -1384,63 +1362,54 @@
<table class="defaultTable" style="text-align: center;">
<tr>
<th />
- <th>Java Blocking Connector<br />BIO</th>
<th>Java Nio Blocking Connector<br />NIO</th>
<th>Java Nio2 Blocking Connector<br />NIO2</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>
<th style="text-align: left;">Support Polling</th>
- <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>
<th style="text-align: left;">Read HTTP Body</th>
- <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>
@@ -1449,12 +1418,10 @@
<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>
@@ -1464,7 +1431,6 @@
<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/manager-howto.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/manager-howto.xml?rev=1636618&r1=1636617&r2=1636618&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/manager-howto.xml (original)
+++ tomcat/trunk/webapps/docs/manager-howto.xml Tue Nov 4 15:53:34 2014
@@ -798,7 +798,7 @@ has been reloaded several times, it may
<source>http://localhost:8080/manager/text/sslConnectorCiphers</source>
<p>The SSL Connector/Ciphers diagnostic lists the SSL ciphers that are currently
-configured for each connector. For BIO and NIO, the names of the individual
+configured for each connector. For NIO and NIO2, the names of the individual
cipher suites are listed. For APR, the value of SSLCipherSuite is returned.</p>
<p>The response will ook something like this:</p>
Modified: tomcat/trunk/webapps/docs/ssl-howto.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/ssl-howto.xml?rev=1636618&r1=1636617&r2=1636618&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/ssl-howto.xml (original)
+++ tomcat/trunk/webapps/docs/ssl-howto.xml Tue Nov 4 15:53:34 2014
@@ -355,7 +355,7 @@ and environment. The configuration optio
are mandatory, are documented in the SSL Support section of the
<a href="config/http.html#SSL_Support">HTTP connector</a> configuration
reference. Make sure that you use the correct attributes for the connector you
-are using. The BIO and NIO connectors use JSSE whereas the APR/native connector
+are using. The NIO and NIO2 connectors use JSSE whereas the APR/native connector
uses APR.</p>
<p>The <code>port</code> attribute (default value is 8443) is the TCP/IP
@@ -541,7 +541,7 @@ public class SessionTrackingModeListener
}]]></source>
- <p>Note: SSL session tracking is implemented for the BIO and NIO connectors.
+ <p>Note: SSL session tracking is implemented for the NIO and NIO2 connectors.
It is not yet implemented for the APR connector.</p>
</section>
@@ -571,8 +571,8 @@ mgr.invalidateSession();
response.setHeader("Connection", "close");]]></source>
<p>
Note that this code is Tomcat specific due to the use of the
- SSLSessionManager class. This is currently only available for the BIO and
- NIO connectors, not the APR/native connector.
+ SSLSessionManager class. This is currently only available for the NIO and
+ NIO2 connectors, not the APR/native connector.
</p>
</section>
Modified: tomcat/trunk/webapps/docs/web-socket-howto.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/web-socket-howto.xml?rev=1636618&r1=1636617&r2=1636618&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/web-socket-howto.xml (original)
+++ tomcat/trunk/webapps/docs/web-socket-howto.xml Tue Nov 4 15:53:34 2014
@@ -49,24 +49,6 @@
code</a>.</p>
</section>
-<section name="Production usage">
-<p>Although the WebSocket implementation does work with any of the HTTP
-connectors, it is not recommended to the WebSocket with the BIO HTTP connector
-as the typical uses of WebSocket (large numbers of mostly idle connections) is
-not a good fit for the HTTP BIO connector which requires that one thread is
-allocated per connection regardless of whether or not the connection is idle.
-</p>
-
-<p>It has been reported (<bug>56304</bug>) that Linux can take large numbers of
-minutes to report dropped connections. When using WebSocket with the BIO HTTP
-connector this can result in threads blocking on writes for this period. This is
-likely to be undesirable. The time taken for the connection to be reported as
-dropped can be reduced by using the kernel network parameter
-<code>/proc/sys/net/ipv4/tcp_retries2</code>. Alternatively, one of the other
-HTTP connectors may be used as they utilise non-blocking IO enabling Tomcat to
-implement its own timeout mechanism to handle these cases.</p>
-</section>
-
<section name="Tomcat WebSocket specific configuration">
<p>Tomcat provides a number of Tomcat specific configuration options for
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org