You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by kk...@apache.org on 2011/11/10 05:12:37 UTC

svn commit: r1200131 - in /tomcat/tc7.0.x/trunk/webapps/docs: aio.xml apr.xml balancer-howto.xml building.xml cgi-howto.xml class-loader-howto.xml cluster-howto.xml connectors.xml

Author: kkolinko
Date: Thu Nov 10 04:12:37 2011
New Revision: 1200131

URL: http://svn.apache.org/viewvc?rev=1200131&view=rev
Log:
Merging r1187809 - Trailing whitespace removal from /webapps
/webapps/docs, 6

Modified:
    tomcat/tc7.0.x/trunk/webapps/docs/aio.xml
    tomcat/tc7.0.x/trunk/webapps/docs/apr.xml
    tomcat/tc7.0.x/trunk/webapps/docs/balancer-howto.xml
    tomcat/tc7.0.x/trunk/webapps/docs/building.xml
    tomcat/tc7.0.x/trunk/webapps/docs/cgi-howto.xml
    tomcat/tc7.0.x/trunk/webapps/docs/class-loader-howto.xml
    tomcat/tc7.0.x/trunk/webapps/docs/cluster-howto.xml
    tomcat/tc7.0.x/trunk/webapps/docs/connectors.xml

Modified: tomcat/tc7.0.x/trunk/webapps/docs/aio.xml
URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/aio.xml?rev=1200131&r1=1200130&r2=1200131&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/webapps/docs/aio.xml (original)
+++ tomcat/tc7.0.x/trunk/webapps/docs/aio.xml Thu Nov 10 04:12:37 2011
@@ -36,8 +36,8 @@
   <section name="Introduction">
 
   <p>
-    With usage of APR or NIO APIs as the basis of its connectors, Tomcat is 
-    able to provide a number of extensions over the regular blocking IO 
+    With usage of APR or NIO APIs as the basis of its connectors, Tomcat is
+    able to provide a number of extensions over the regular blocking IO
     as provided with support for the Servlet API.
   </p>
 
@@ -60,7 +60,7 @@
   </p>
 
   <subsection name="CometEvent">
-  
+
   <p>
     Servlets which implement the <code>org.apache.catalina.comet.CometProcessor</code>
     interface will have their event method invoked rather than the usual service
@@ -71,38 +71,38 @@
     an END or ERROR event.
     The following event types exist:
   </p>
-  
+
   <ul>
-  <li>EventType.BEGIN: will be called at the beginning 
-     of the processing of the connection. It can be used to initialize any relevant 
-     fields using the request and response objects. Between the end of the processing 
+  <li>EventType.BEGIN: will be called at the beginning
+     of the processing of the connection. It can be used to initialize any relevant
+     fields using the request and response objects. Between the end of the processing
      of this event, and the beginning of the processing of the end or error events,
      it is possible to use the response object to write data on the open connection.
-     Note that the response object and dependent OutputStream and Writer are still 
-     not synchronized, so when they are accessed by multiple threads, 
-     synchronization is mandatory. After processing the initial event, the request 
+     Note that the response object and dependent OutputStream and Writer are still
+     not synchronized, so when they are accessed by multiple threads,
+     synchronization is mandatory. After processing the initial event, the request
      is considered to be committed.</li>
   <li>EventType.READ: This indicates that input data is available, and that one read can be made
        without blocking. The available and ready methods of the InputStream or
        Reader may be used to determine if there is a risk of blocking: the servlet
-       should read while data is reported available. When encountering a read error, 
-       the servlet should report it by propagating the exception properly. Throwing 
-       an exception will cause the error event to be invoked, and the connection 
-       will be closed. 
+       should read while data is reported available. When encountering a read error,
+       the servlet should report it by propagating the exception properly. Throwing
+       an exception will cause the error event to be invoked, and the connection
+       will be closed.
        Alternately, it is also possible to catch any exception, perform clean up
        on any data structure the servlet may be using, and using the close method
-       of the event. It is not allowed to attempt reading data from the request 
+       of the event. It is not allowed to attempt reading data from the request
        object outside of the execution of this method.<br/>
        On some platforms, like Windows, a client disconnect is indicated by a READ event.
        Reading from the stream may result in -1, an IOException or an EOFException.
        Make sure you properly handle all these three cases.
-       If you don't catch the IOException, Tomcat will instantly invoke your event chain with an ERROR as 
+       If you don't catch the IOException, Tomcat will instantly invoke your event chain with an ERROR as
        it catches the error for you, and you will be notified of the error at that time.
   </li>
   <li>EventType.END: End may be called to end the processing of the request. Fields that have
      been initialized in the begin method should be reset. After this event has
      been processed, the request and response objects, as well as all their dependent
-     objects will be recycled and used to process other requests. End will also be 
+     objects will be recycled and used to process other requests. End will also be
      called when data is available and the end of file is reached on the request input
      (this usually indicates the client has pipelined a request).</li>
   <li>EventType.ERROR: Error will be called by the container in the case where an IO exception
@@ -118,13 +118,13 @@
   </p>
 
   <ul>
-  <li>EventSubType.TIMEOUT: The connection timed out (sub type of ERROR); note that this ERROR 
-    type is not fatal, and the connection will not be closed unless the servlet uses the close 
+  <li>EventSubType.TIMEOUT: The connection timed out (sub type of ERROR); note that this ERROR
+    type is not fatal, and the connection will not be closed unless the servlet uses the close
     method of the event.
   </li>
   <li>EventSubType.CLIENT_DISCONNECT: The client connection was closed (sub type of ERROR).
   </li>
-  <li>EventSubType.IOEXCEPTION: An IO exception occurred, such as invalid content, for example, 
+  <li>EventSubType.IOEXCEPTION: An IO exception occurred, such as invalid content, for example,
     an invalid chunk block (sub type of ERROR).
   </li>
   <li>EventSubType.WEBAPP_RELOAD: The web application is being reloaded (sub type of END).
@@ -135,43 +135,43 @@
 
   <p>
     As described above, the typical lifecycle of a Comet request will consist in a series of
-    events such as: BEGIN -> READ -> READ -> READ -> ERROR/TIMEOUT. At any time, the servlet 
+    events such as: BEGIN -> READ -> READ -> READ -> ERROR/TIMEOUT. At any time, the servlet
     may end processing of the request by using the close method of the event object.
   </p>
-  
+
   </subsection>
 
   <subsection name="CometFilter">
-  
+
   <p>
     Similar to regular filters, a filter chain is invoked when comet events are processed.
-    These filters should implement the CometFilter interface (which works in the same way as 
+    These filters should implement the CometFilter interface (which works in the same way as
     the regular Filter interface), and should be declared and mapped in the deployment
     descriptor in the same way as a regular filter. The filter chain when processing an event
     will only include filters which match all the usual mapping rules, and also implement
     the CometFiler interface.
   </p>
-  
+
   </subsection>
 
   <subsection name="Example code">
-  
+
   <p>
     The following pseudo code servlet implements asynchronous chat functionality using the API
     described above:
   </p>
-  
+
   <source>
 public class ChatServlet
     extends HttpServlet implements CometProcessor {
 
-    protected ArrayList&lt;HttpServletResponse> connections = 
+    protected ArrayList&lt;HttpServletResponse> connections =
         new ArrayList&lt;HttpServletResponse>();
     protected MessageSender messageSender = null;
-    
+
     public void init() throws ServletException {
         messageSender = new MessageSender();
-        Thread messageSenderThread = 
+        Thread messageSenderThread =
             new Thread(messageSender, "MessageSender[" + getServletContext().getContextPath() + "]");
         messageSenderThread.setDaemon(true);
         messageSenderThread.start();
@@ -185,7 +185,7 @@ public class ChatServlet
 
     /**
      * Process the given Comet event.
-     * 
+     *
      * @param event The Comet event that will be processed
      * @throws IOException
      * @throws ServletException
@@ -223,7 +223,7 @@ public class ChatServlet
             do {
                 int n = is.read(buf); //can throw an IOException
                 if (n &gt; 0) {
-                    log("Read " + n + " bytes: " + new String(buf, 0, n) 
+                    log("Read " + n + " bytes: " + new String(buf, 0, n)
                             + " for session: " + request.getSession(true).getId());
                 } else if (n &lt; 0) {
                     error(event, request, response);
@@ -237,10 +237,10 @@ public class ChatServlet
 
         protected boolean running = true;
         protected ArrayList&lt;String> messages = new ArrayList&lt;String>();
-        
+
         public MessageSender() {
         }
-        
+
         public void stop() {
             running = false;
         }
@@ -297,7 +297,7 @@ public class ChatServlet
 
 }
   </source>
-  
+
   </subsection>
   <subsection name="Comet timeouts">
     <p>If you are using the NIO connector, you can set individual timeouts for your different comet connections.
@@ -318,7 +318,7 @@ public class ChatServlet
 
   <p>
     When APR or NIO is enabled, Tomcat supports using sendfile to send large static files.
-    These writes, as soon as the system load increases, will be performed 
+    These writes, as soon as the system load increases, will be performed
     asynchronously in the most efficient way. Instead of sending a large response using
     blocking writes, it is possible to write content to a static file, and write it
     using a sendfile code. A caching valve could take advantage of this to cache the
@@ -326,17 +326,17 @@ public class ChatServlet
     available if the request attribute <code>org.apache.tomcat.sendfile.support</code>
     is set to <code>Boolean.TRUE</code>.
   </p>
-  
+
   <p>
     Any servlet can instruct Tomcat to perform a sendfile call by setting the appropriate
     request attributes. It is also necessary to correctly set the content length
     for the response. When using sendfile, it is best to ensure that neither the
     request or response have been wrapped, since as the response body will be sent later
-    by the connector itself, it cannot be filtered. Other than setting the 3 needed 
+    by the connector itself, it cannot be filtered. Other than setting the 3 needed
     request attributes, the servlet should not send any response data, but it may use
     any method which will result in modifying the response header (like setting cookies).
   </p>
-  
+
   <ul>
   <li><code>org.apache.tomcat.sendfile.filename</code>: Canonical filename of the file which will be sent as
       a String</li>

Modified: tomcat/tc7.0.x/trunk/webapps/docs/apr.xml
URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/apr.xml?rev=1200131&r1=1200130&r2=1200131&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/webapps/docs/apr.xml (original)
+++ tomcat/tc7.0.x/trunk/webapps/docs/apr.xml Thu Nov 10 04:12:37 2011
@@ -36,17 +36,17 @@
   <section name="Introduction">
 
   <p>
-      Tomcat can use the <a href="http://apr.apache.org/">Apache Portable Runtime</a> to 
-      provide superior scalability, performance, and better integration with native server 
-      technologies. The Apache Portable Runtime is a highly portable library that is at 
+      Tomcat can use the <a href="http://apr.apache.org/">Apache Portable Runtime</a> to
+      provide superior scalability, performance, and better integration with native server
+      technologies. The Apache Portable Runtime is a highly portable library that is at
       the heart of Apache HTTP Server 2.x. APR has many uses, including access to advanced IO
       functionality (such as sendfile, epoll and OpenSSL), OS level functionality (random number
       generation, system status, etc), and native process handling (shared memory, NT
       pipes and Unix sockets).
   </p>
-  
+
   <p>
-      These features allows making Tomcat a general purpose webserver, will enable much better 
+      These features allows making Tomcat a general purpose webserver, will enable much better
       integration with other native web technologies, and overall make Java much more viable as
       a full fledged webserver platform rather than simply a backend focused technology.
   </p>
@@ -65,26 +65,26 @@
     </p>
 
     <subsection name="Windows">
-    
+
     <p>
       Windows binaries are provided for tcnative-1, which is a statically compiled .dll which includes
       OpenSSL and APR. It can be downloaded from <a href="http://tomcat.apache.org/download-native.cgi">here</a>
       as 32bit or AMD x86-64 binaries.
       In security conscious production environments, it is recommended to use separate shared dlls
       for OpenSSL, APR, and libtcnative-1, and update them as needed according to security bulletins.
-      Windows OpenSSL binaries are linked from the <a href="http://www.openssl.org">Official OpenSSL 
+      Windows OpenSSL binaries are linked from the <a href="http://www.openssl.org">Official OpenSSL
       website</a> (see related/binaries).
     </p>
-    
+
     </subsection>
-    
+
     <subsection name="Linux">
-    
+
     <p>
-      Most Linux distributions will ship packages for APR and OpenSSL. The JNI wrapper (libtcnative) will 
+      Most Linux distributions will ship packages for APR and OpenSSL. The JNI wrapper (libtcnative) will
       then have to be compiled. It depends on APR, OpenSSL, and the Java headers.
     </p>
-    
+
     <p>
       Requirements:
       <ul>
@@ -94,15 +94,15 @@
         <li>GNU development environment (gcc, make)</li>
       </ul>
     </p>
-    
+
     <p>
-      The wrapper library sources are located in the Tomcat binary bundle, in the 
+      The wrapper library sources are located in the Tomcat binary bundle, in the
       <code>bin/tomcat-native.tar.gz</code> archive.
-      Once the build environment is installed and the source archive is extracted, the wrapper library 
+      Once the build environment is installed and the source archive is extracted, the wrapper library
       can be compiled using (from the folder containing the configure script):
       <source>./configure &amp;&amp; make &amp;&amp; make install</source>
     </p>
-    
+
     </subsection>
 
   </section>
@@ -135,13 +135,13 @@
     <p>
       Name of the SSLEngine to use. off: Do not use SSL, on: Use SSL but no specific ENGINE.
       The default value is <b>on</b>.
-      This initializes the native SSL engine, then enable the use of this engine in the connector 
+      This initializes the native SSL engine, then enable the use of this engine in the connector
       using the <code>SSLEnabled</code> attribute. Example:
       <source>
 &lt;Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /&gt;
       </source>
     </p>
-    <p>See the <a href="http://www.openssl.org">Official OpenSSL 
+    <p>See the <a href="http://www.openssl.org">Official OpenSSL
        website</a> for more details on SSL hardware engines and manufacturers.
     </p>
     </attribute>
@@ -149,9 +149,9 @@
   </section>
 
   <section name="APR Connectors Configuration">
-  
+
     <subsection name="HTTP/HTTPS">
-  
+
       <p>For HTTP configuration, see the <a href="config/http.html">HTTP</a>
       connector configuration documentation.</p>
 
@@ -165,18 +165,18 @@
                  maxThreads="150"
                  enableLookups="false" disableUploadTimeout="true"
                  acceptCount="100" scheme="https" secure="true"
-                 SSLEnabled="true" 
+                 SSLEnabled="true"
                  SSLCertificateFile="${catalina.base}/conf/localhost.crt"
                  SSLCertificateKeyFile="${catalina.base}/conf/localhost.key" /&gt;</source>
       </p>
-    
+
     </subsection>
 
     <subsection name="AJP">
 
       <p>For AJP configuration, see the <a href="config/ajp.html">AJP</a>
       connector configuration documentation.</p>
-    
+
     </subsection>
 
   </section>

Modified: tomcat/tc7.0.x/trunk/webapps/docs/balancer-howto.xml
URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/balancer-howto.xml?rev=1200131&r1=1200130&r2=1200131&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/webapps/docs/balancer-howto.xml (original)
+++ tomcat/tc7.0.x/trunk/webapps/docs/balancer-howto.xml Thu Nov 10 04:12:37 2011
@@ -20,7 +20,7 @@
 ]>
 <document url="balancer-howto.html">
 
-    &project; 
+    &project;
 
     <properties>
         <author email="yoavs@apache.org">Yoav Shapira</author>

Modified: tomcat/tc7.0.x/trunk/webapps/docs/building.xml
URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/building.xml?rev=1200131&r1=1200130&r2=1200131&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/webapps/docs/building.xml (original)
+++ tomcat/tc7.0.x/trunk/webapps/docs/building.xml Thu Nov 10 04:12:37 2011
@@ -51,7 +51,7 @@ Tomcat requires a JDK (version 1.6 or la
 </p>
 
 <p>
-<b>IMPORTANT</b>: Set an environment variable JAVA_HOME to the pathname of the 
+<b>IMPORTANT</b>: Set an environment variable JAVA_HOME to the pathname of the
 directory into which you installed the JDK release.
 </p>
 
@@ -60,7 +60,7 @@ directory into which you installed the J
 <section name="Install Apache Ant 1.8.1 or later">
 
 <p>
-Download a binary distribution of Ant 1.8.1 or later from 
+Download a binary distribution of Ant 1.8.1 or later from
 <a href="http://ant.apache.org/bindownload.cgi">here</a>.
 </p>
 
@@ -73,7 +73,7 @@ the symbolic name <code>${ant.home}</cod
 </p>
 
 <p>
-<b>IMPORTANT</b>: Create an ANT_HOME environment variable to point the directory <code>${ant.home}</code>, 
+<b>IMPORTANT</b>: Create an ANT_HOME environment variable to point the directory <code>${ant.home}</code>,
 and modify the PATH environment variable to include directory
 <code>${ant.home}/bin</code> in its list.  This makes the <code>ant</code> command line script
 available, which will be used to actually perform the build.
@@ -84,20 +84,20 @@ available, which will be used to actuall
 <section name="Checkout or obtain the source code for Tomcat 7.0">
 
   <p>
-  Tomcat SVN repository URL: 
+  Tomcat SVN repository URL:
   <a href="http://svn.apache.org/repos/asf/tomcat/trunk/">http://svn.apache.org/repos/asf/tomcat/trunk/</a>
   </p>
   <p>
-  Tomcat source packages: 
+  Tomcat source packages:
   <a href="http://tomcat.apache.org/download-70.cgi">http://tomcat.apache.org/download-70.cgi</a>.
   </p>
 
   <p>
-  Checkout the source using SVN, or download and unpack a source package. 
-  For the remainder of this guide, the symbolic name <code>${tomcat.source}</code> is used to refer to the 
+  Checkout the source using SVN, or download and unpack a source package.
+  For the remainder of this guide, the symbolic name <code>${tomcat.source}</code> is used to refer to the
   location where the source has been placed.
   </p>
- 
+
 </section>
 
 <section name="Building Tomcat">
@@ -117,11 +117,11 @@ Use the following commands to build Tomc
 </p>
 
 <p>
-<b>WARNING:</b> Running this command will download binary binaries to the 
-  <code>/usr/share/java</code> directory by default. 
-  Make sure this is appropriate to do so on your computer. On Windows, 
-  this usually corresponds to the <code>C:\usr\share\java</code> directory, 
-  unless Cygwin is used. Read below to customize the directory used 
+<b>WARNING:</b> Running this command will download binary binaries to the
+  <code>/usr/share/java</code> directory by default.
+  Make sure this is appropriate to do so on your computer. On Windows,
+  this usually corresponds to the <code>C:\usr\share\java</code> directory,
+  unless Cygwin is used. Read below to customize the directory used
   to download the binaries.
 </p>
 
@@ -169,7 +169,7 @@ get warnings, reformat code, perform ref
 under the IDE, and so on.
 </p>
 <p>
-Sample Eclipse project files and launch targets are provided in the 
+Sample Eclipse project files and launch targets are provided in the
 <code>res/ide-support/eclipse</code> directory of the source tree.
 The instructions below will automatically copy these into the required locations.
 </p>
@@ -210,14 +210,14 @@ and import the Tomcat project located th
 <code>start-tomcat</code> and <code>stop-tomcat</code> launch configurations are provided in
 <code>res/ide-support/eclipse</code> and will be available in the <em>Run-&gt;Run Configurations</em>
 dialog. Use these to start and stop Tomcat from Eclipse.
-<br/>If you want to configure these yourself (or are using a different IDE) 
+<br/>If you want to configure these yourself (or are using a different IDE)
 then use <code>org.apache.catalina.startup.Bootstrap</code> as the main class,
-<code>start</code>/<code>stop</code> etc. as program arguments, and specify <code>-Dcatalina.home=...</code> 
+<code>start</code>/<code>stop</code> etc. as program arguments, and specify <code>-Dcatalina.home=...</code>
 (with the name of your build directory) as VM arguments.
 </p>
 
 <p>
-Tweaking a few formatting preferences will make it much easier to keep consistent with Tomcat 
+Tweaking a few formatting preferences will make it much easier to keep consistent with Tomcat
 coding conventions (and have your contributions accepted):
 </p>
 <p>

Modified: tomcat/tc7.0.x/trunk/webapps/docs/cgi-howto.xml
URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/cgi-howto.xml?rev=1200131&r1=1200130&r2=1200131&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/webapps/docs/cgi-howto.xml (original)
+++ tomcat/tc7.0.x/trunk/webapps/docs/cgi-howto.xml Thu Nov 10 04:12:37 2011
@@ -42,9 +42,9 @@ referred to as CGI programs or CGI scrip
 
 <p>Within Tomcat, CGI support can be added when you are using Tomcat as your
 HTTP server and require CGI support.  Typically this is done
-during development when you don't want to run a web server like 
+during development when you don't want to run a web server like
 Apache httpd.
-Tomcat's CGI support is largely compatible with Apache httpd's, 
+Tomcat's CGI support is largely compatible with Apache httpd's,
 but there are some limitations (e.g., only one cgi-bin directory).
 </p>
 

Modified: tomcat/tc7.0.x/trunk/webapps/docs/class-loader-howto.xml
URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/class-loader-howto.xml?rev=1200131&r1=1200130&r2=1200131&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/webapps/docs/class-loader-howto.xml (original)
+++ tomcat/tc7.0.x/trunk/webapps/docs/class-loader-howto.xml Thu Nov 10 04:12:37 2011
@@ -63,7 +63,7 @@ class loader is above the child class lo
           |
        Common
        /     \
-  Webapp1   Webapp2 ... 
+  Webapp1   Webapp2 ...
 </source>
 
 <p>The characteristics of each of these class loaders, including the source
@@ -150,7 +150,7 @@ loaders as it is initialized:</p>
         implementation based on package-renamed copy of Apache Commons Pool
         and Apache Commons DBCP.</li>
     <li><em>tomcat-i18n-**.jar</em> &#8212; Optional JARs containing resource bundles
-        for other languages. As default bundles are also included in each 
+        for other languages. As default bundles are also included in each
         individual JAR, they can be safely removed if no internationalization
         of messages is needed.</li>
     <li><em>tomcat-jdbc.jar</em> &#8212; An alternative database connection pool
@@ -169,13 +169,13 @@ loaders as it is initialized:</p>
 
 <p>As mentioned above, the web application class loader diverges from the
 default Java delegation model (in accordance with the recommendations in the
-Servlet Specification, version 2.4, section 9.7.2 Web Application Classloader).  
+Servlet Specification, version 2.4, section 9.7.2 Web Application Classloader).
 When a request to load a
 class from the web application's <em>WebappX</em> class loader is processed,
 this class loader will look in the local repositories <strong>first</strong>,
 instead of delegating before looking.  There are exceptions. Classes which are
 part of the JRE base classes cannot be overridden. For some classes (such as
-the XML parser components in J2SE 1.4+), the J2SE 1.4 endorsed feature can be 
+the XML parser components in J2SE 1.4+), the J2SE 1.4 endorsed feature can be
 used.
 Last, any JAR file that contains Servlet API classes will be explicitly
 ignored by the classloader &#8212; Do not include such JARs in your web

Modified: tomcat/tc7.0.x/trunk/webapps/docs/cluster-howto.xml
URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/cluster-howto.xml?rev=1200131&r1=1200130&r2=1200131&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/webapps/docs/cluster-howto.xml (original)
+++ tomcat/tc7.0.x/trunk/webapps/docs/cluster-howto.xml Thu Nov 10 04:12:37 2011
@@ -46,7 +46,7 @@
   </p>
   <p>
     Using the above configuration will enable all-to-all session replication
-    using the <code>DeltaManager</code> to replicate session deltas. By all-to-all we mean that the session gets replicated to all the other 
+    using the <code>DeltaManager</code> to replicate session deltas. By all-to-all we mean that the session gets replicated to all the other
     nodes in the cluster. This works great for smaller cluster but we don't recommend it for larger clusters(a lot of tomcat nodes).
     Also when using the delta manager it will replicate to all nodes, even nodes that don't have the application deployed.<br/>
     To get around this problem, you'll want to use the BackupManager. This manager only replicates the session data to one backup
@@ -100,7 +100,7 @@
 
           &lt;ClusterListener className=&quot;org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener&quot;/&gt;
           &lt;ClusterListener className=&quot;org.apache.catalina.ha.session.ClusterSessionListener&quot;/&gt;
-        &lt;/Cluster&gt;    
+        &lt;/Cluster&gt;
     </source>
   </p>
   <p>Will cover this section in more detail later in this document.</p>
@@ -128,7 +128,7 @@ should be completed:</p>
 <p>Note: Remember that your session state is tracked by a cookie, so your URL must look the same from the out
    side otherwise, a new session will be created.</p>
 <p>Note: Clustering support currently requires the JDK version 1.5 or later.</p>
-<p>The Cluster module uses the Tomcat JULI logging framework, so you can configure logging 
+<p>The Cluster module uses the Tomcat JULI logging framework, so you can configure logging
    through the regular logging.properties file. To track messages, you can enable logging on the key:<code>org.apache.catalina.tribes.MESSAGES</code></p>
 </section>
 
@@ -142,9 +142,9 @@ should be completed:</p>
   <li>Using in-memory-replication, using the SimpleTcpCluster that ships with Tomcat (lib/catalina-tribes.jar + lib/catalina-ha.jar)</li>
 </ol>
 
-<p>In this release of session replication, Tomcat can perform an all-to-all replication of session state using the <code>DeltaManager</code> or 
+<p>In this release of session replication, Tomcat can perform an all-to-all replication of session state using the <code>DeltaManager</code> or
    perform backup replication to only one node using the <code>BackupManager</code>.
-   The all-to-all replication is an algorithm that is only efficient when the clusters are small. For larger clusters,  to use 
+   The all-to-all replication is an algorithm that is only efficient when the clusters are small. For larger clusters,  to use
    a primary-secondary session replication where the session will only be stored at one backup server simply setup the BackupManager. <br/>
    Currently you can use the domain worker attribute (mod_jk &gt; 1.2.8) to build cluster partitions
    with the potential of having a more scaleable cluster solution with the DeltaManager(you'll need to configure the domain interceptor for this).
@@ -172,12 +172,12 @@ should be completed:</p>
 </section>
 
 <section name="Cluster Information">
-<p>Membership is established using multicast heartbeats. 
-   Hence, if you wish to subdivide your clusters, you can do this by 
+<p>Membership is established using multicast heartbeats.
+   Hence, if you wish to subdivide your clusters, you can do this by
    changing the multicast IP address or port in the <code>&lt;Membership&gt;</code> element.
 </p>
 <p>
-   The heartbeat contains the IP address of the Tomcat node and the TCP port that 
+   The heartbeat contains the IP address of the Tomcat node and the TCP port that
    Tomcat listens to for replication traffic. All data communication happens over TCP.
 </p>
 <p>
@@ -191,7 +191,7 @@ should be completed:</p>
     sent over the wire and reinstantiated on all the other cluster nodes.
     Synchronous vs. asynchronous is configured using the <code>channelSendOptions</code>
     flag and is an integer value. The default value for the <code>SimpleTcpCluster/DeltaManager</code> combo is
-    8, which is asynchronous. You can read more on the <a href="tribes/introduction.html">send flag(overview)</a> or the 
+    8, which is asynchronous. You can read more on the <a href="tribes/introduction.html">send flag(overview)</a> or the
     <a href="http://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/catalina/tribes/Channel.html">send flag(javadoc)</a>.
     During async replication, the request is returned before the data has been replicated. async replication yields shorter
     request times, and synchronous replication guarantees the session to be replicated before the request returns.
@@ -200,12 +200,12 @@ should be completed:</p>
 
 <section name="Bind session after crash to failover node">
 <p>
-    If you are using mod_jk and not using sticky sessions or for some reasons sticky session don't 
-    work, or you are simply failing over, the session id will need to be modified as it previously contained 
+    If you are using mod_jk and not using sticky sessions or for some reasons sticky session don't
+    work, or you are simply failing over, the session id will need to be modified as it previously contained
     the worker id of the previous tomcat (as defined by jvmRoute in the Engine element).
     To solve this, we will use the JvmRouteBinderValve.
 </p>
-<p> 
+<p>
     The JvmRouteBinderValve rewrites the session id to ensure that the next request will remain sticky
     (and not fall back to go to random nodes since the worker is no longer available) after a fail over.
     The valve rewrites the JSESSIONID value in the cookie with the same name.
@@ -213,7 +213,7 @@ should be completed:</p>
 </p>
 <p>
     By default, if no valves are configured, the JvmRouteBinderValve is added on.
-    The cluster message listener called JvmRouteSessionIDBinderListener is also defined by default and is used to actually rewrite the 
+    The cluster message listener called JvmRouteSessionIDBinderListener is also defined by default and is used to actually rewrite the
     session id on the other nodes in the cluster once a fail over has occurred.
     Remember, if you are adding your own valves or cluster listeners in server.xml then the defaults are no longer valid,
     make sure that you add in all the appropriate valves and listeners as defined by the default.
@@ -226,8 +226,8 @@ should be completed:</p>
 <p>
     <b>Trick:</b><br/>
     You can enable this mod_jk turnover mode via JMX before you drop a node to all backup nodes!
-    Set enable true on all JvmRouteBinderValve backups, disable worker at mod_jk 
-    and then drop node and restart it! Then enable mod_jk Worker and disable JvmRouteBinderValves again. 
+    Set enable true on all JvmRouteBinderValve backups, disable worker at mod_jk
+    and then drop node and restart it! Then enable mod_jk Worker and disable JvmRouteBinderValves again.
     This use case means that only requested session are migrated.
 </p>
 
@@ -247,7 +247,7 @@ should be completed:</p>
           &lt;Manager className=&quot;org.apache.catalina.ha.session.DeltaManager&quot;
                    expireSessionsOnShutdown=&quot;false&quot;
                    notifyListenersOnReplication=&quot;true&quot;/&gt;
-          --&gt;        
+          --&gt;
           &lt;Channel className=&quot;org.apache.catalina.tribes.group.GroupChannel&quot;&gt;
             &lt;Membership className=&quot;org.apache.catalina.tribes.membership.McastService&quot;
                         address=&quot;228.0.0.4&quot;
@@ -306,14 +306,14 @@ should be completed:</p>
           &lt;Manager className=&quot;org.apache.catalina.ha.session.DeltaManager&quot;
                    expireSessionsOnShutdown=&quot;false&quot;
                    notifyListenersOnReplication=&quot;true&quot;/&gt;
-          --&gt;        
+          --&gt;
     </source>
     <p>
         This is a template for the manager configuration that will be used if no manager is defined in the &lt;Context&gt;
         element. In Tomcat 5.x each webapp marked distributable had to use the same manager, this is no longer the case
         since Tomcat you can define a manager class for each webapp, so that you can mix managers in your cluster.
         Obviously the managers on one node's application has to correspond with the same manager on the same application on the other node.
-        If no manager has been specified for the webapp, and the webapp is marked &lt;distributable/&gt; Tomcat will take this manager configuration 
+        If no manager has been specified for the webapp, and the webapp is marked &lt;distributable/&gt; Tomcat will take this manager configuration
         and create a manager instance cloning this configuration.
         <br/>For more info, Please visit the <a href="config/cluster-manager.html">reference documentation</a>
     </p>
@@ -333,13 +333,13 @@ should be completed:</p>
                         dropTime=&quot;3000&quot;/&gt;
     </source>
     <p>
-        Membership is done using multicasting. Please note that Tribes also supports static memberships using the 
+        Membership is done using multicasting. Please note that Tribes also supports static memberships using the
         <code>StaticMembershipInterceptor</code> if you want to extend your membership to points beyond multicasting.
         The address attribute is the multicast address used and the port is the multicast port. These two together
         create the cluster separation. If you want a QA cluster and a production cluster, the easiest config is to
         have the QA cluster be on a separate multicast address/port combination the the production cluster.<br/>
         The membership component broadcasts TCP adress/port of itselt to the other nodes so that communication between
-        nodes can be done over TCP. Please note that the address being broadcasted is the one of the 
+        nodes can be done over TCP. Please note that the address being broadcasted is the one of the
         <code>Receiver.address</code> attribute.
         <br/>For more info, Please visit the <a href="config/cluster-membership.html">reference documentation</a>
     </p>
@@ -365,7 +365,7 @@ should be completed:</p>
     </source>
     <p>
         The sender component, as the name indicates is responsible for sending messages to other nodes.
-        The sender has a shell component, the <code>ReplicationTransmitter</code> but the real stuff done is done in the 
+        The sender has a shell component, the <code>ReplicationTransmitter</code> but the real stuff done is done in the
         sub component, <code>Transport</code>.
         Tribes support having a pool of senders, so that messages can be sent in parallel and if using the NIO sender,
         you can send messages concurrently as well.<br/>
@@ -380,14 +380,14 @@ should be completed:</p>
           &lt;/Channel&gt;
     </source>
     <p>
-        Tribes uses a stack to send messages through. Each element in the stack is called an interceptor, and works much like the valves do 
+        Tribes uses a stack to send messages through. Each element in the stack is called an interceptor, and works much like the valves do
         in the Tomcat servlet container.
         Using interceptors, logic can be broken into more managable pieces of code. The interceptors configured above are:<br/>
         TcpFailureDetector - verifies crashed members through TCP, if multicast packets get dropped, this interceptor protects against false positives,
         ie the node marked as crashed even though it still is alive and running.<br/>
         MessageDispatch15Interceptor - dispatches messages to a thread (thread pool) to send message asynchrously.<br/>
         ThroughputInterceptor - prints out simple stats on message traffic.<br/>
-        Please note that the order of interceptors is important. the way they are defined in server.xml is the way they are represented in the 
+        Please note that the order of interceptors is important. the way they are defined in server.xml is the way they are represented in the
         channel stack. Think of it as a linked list, with the head being the first most interceptor and the tail the last.
         <br/>For more info, Please visit the <a href="config/cluster-interceptor.html">reference documentation</a>
     </p>
@@ -410,8 +410,8 @@ should be completed:</p>
     </source>
     <p>
         The default tomcat cluster supports farmed deployment, ie, the cluster can deploy and undeploy applications on the other nodes.
-        The state of this component is currently in flux but will be addressed soon. There was a change in the deployment algorithm 
-        between Tomcat 5.0 and 5.5 and at that point, the logic of this component changed to where the deploy dir has to match the 
+        The state of this component is currently in flux but will be addressed soon. There was a change in the deployment algorithm
+        between Tomcat 5.0 and 5.5 and at that point, the logic of this component changed to where the deploy dir has to match the
         webapps directory.
         <br/>For more info, Please visit the <a href="config/cluster-deployer.html">reference documentation</a>
     </p>
@@ -420,12 +420,12 @@ should be completed:</p>
         &lt;/Cluster&gt;
     </source>
     <p>
-        Since the SimpleTcpCluster itself is a sender and receiver of the Channel object, components can register themselves as listeners to 
+        Since the SimpleTcpCluster itself is a sender and receiver of the Channel object, components can register themselves as listeners to
         the SimpleTcpCluster. The listener above <code>ClusterSessionListener</code> listens for DeltaManager replication messages
         and applies the deltas to the manager that in turn applies it to the session.
         <br/>For more info, Please visit the <a href="config/cluster-listener.html">reference documentation</a>
     </p>
-    
+
 </section>
 
 <section name="Cluster Architecture">
@@ -437,14 +437,14 @@ should be completed:</p>
          Service
            |
          Engine
-           |  \ 
+           |  \
            |  --- Cluster --*
            |
          Host
            |
          ------
         /      \
-     Cluster    Context(1-N)                 
+     Cluster    Context(1-N)
         |             \
         |             -- Manager
         |                   \
@@ -465,20 +465,20 @@ should be completed:</p>
                                          -- Valve
                                          |      \
                                          |       -- ReplicationValve
-                                         |       -- JvmRouteBinderValve 
+                                         |       -- JvmRouteBinderValve
                                          |
-                                         -- LifecycleListener 
+                                         -- LifecycleListener
                                          |
-                                         -- ClusterListener 
+                                         -- ClusterListener
                                          |      \
                                          |       -- ClusterSessionListener
                                          |       -- JvmRouteSessionIDBinderListener
                                          |
-                                         -- Deployer 
+                                         -- Deployer
                                                 \
                                                  -- FarmWarDeployer
-      
-      
+
+
 </source>
 </p>
 
@@ -633,11 +633,11 @@ set CATALINA_OPTS=\
 <li>Install the mx4j-tools.jar at common/lib (use the same mx4j version as your tomcat release)</li>
 <li>Configure a MX4J JMX HTTP Adaptor at your AJP Connector<p></p>
 <source>
-&lt;Connector port="${AJP.PORT}" 
+&lt;Connector port="${AJP.PORT}"
    handler.list="mx"
-   mx.enabled="true" 
-   mx.httpHost="${JMX.HOST}" 
-   mx.httpPort="${JMX.PORT}" 
+   mx.enabled="true"
+   mx.httpHost="${JMX.HOST}"
+   mx.httpPort="${JMX.PORT}"
    protocol="AJP/1.3" /&gt;
 </source>
 </li>
@@ -662,7 +662,7 @@ List of Cluster Mbeans<br/>
     <td><code>type=Cluster</code></td>
     <td><code>type=Cluster,host=${HOST}</code></td>
   </tr>
- 
+
   <tr>
     <td>DeltaManager</td>
     <td>This manager control the sessions and handle session replication </td>

Modified: tomcat/tc7.0.x/trunk/webapps/docs/connectors.xml
URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/connectors.xml?rev=1200131&r1=1200130&r2=1200131&view=diff
==============================================================================
--- tomcat/tc7.0.x/trunk/webapps/docs/connectors.xml (original)
+++ tomcat/tc7.0.x/trunk/webapps/docs/connectors.xml Thu Nov 10 04:12:37 2011
@@ -48,26 +48,26 @@ connector features the lowest latency an
 
 <p>For clustering, a HTTP load balancer <b>with support for web sessions stickiness</b>
 must be installed to direct the traffic to the Tomcat servers. Tomcat supports mod_proxy
-(on Apache HTTP Server 2.x, and included by default in Apache HTTP Server 2.2) as the load balancer. 
-It should be noted that the performance of HTTP proxying is usually lower than the 
+(on Apache HTTP Server 2.x, and included by default in Apache HTTP Server 2.2) as the load balancer.
+It should be noted that the performance of HTTP proxying is usually lower than the
 performance of AJP, so AJP clustering is often preferable.</p>
 
 </section>
 
 <section name="AJP">
 
-<p>When using a single server, the performance when using a native webserver in 
+<p>When using a single server, the performance when using a native webserver in
 front of the Tomcat instance is most of the time significantly worse than a
 standalone Tomcat with its default HTTP connector, even if a large part of the web
-application is made of static files. If integration with the native webserver is 
-needed for any reason, an AJP connector will provide faster performance than 
-proxied HTTP. AJP clustering is the most efficient from the Tomcat perspective. 
+application is made of static files. If integration with the native webserver is
+needed for any reason, an AJP connector will provide faster performance than
+proxied HTTP. AJP clustering is the most efficient from the Tomcat perspective.
 It is otherwise functionally equivalent to HTTP clustering.</p>
 
 <p>The native connectors supported with this Tomcat release are:
 <ul>
 <li>JK 1.2.x with any of the supported servers</li>
-<li>mod_proxy on Apache HTTP Server 2.x (included by default in Apache HTTP Server 2.2), 
+<li>mod_proxy on Apache HTTP Server 2.x (included by default in Apache HTTP Server 2.2),
 with AJP enabled</li>
 </ul>
 </p>



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