Author: fhanik
Date: Tue Sep  5 10:24:10 2006
New Revision: 440412

URL: http://svn.apache.org/viewvc?view=rev&rev=440412
Log:
Still prepping for cluster integration. 
To dos: 
 - documentation
 - integrate test cases
 - sample webapp


Modified:
    tomcat/tc6.0.x/trunk/conf/server.xml
    tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/ClusterRuleSet.java

Modified: tomcat/tc6.0.x/trunk/conf/server.xml
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/conf/server.xml?view=diff&rev=440412&r1=440411&r2=440412
==============================================================================
--- tomcat/tc6.0.x/trunk/conf/server.xml (original)
+++ tomcat/tc6.0.x/trunk/conf/server.xml Tue Sep  5 10:24:10 2006
@@ -188,130 +188,45 @@
        unpackWARs="true" autoDeploy="true"
        xmlValidation="false" xmlNamespaceAware="false">
 
-        <!-- Defines a cluster for this node,
-             By defining this element, means that every manager will be 
changed.
-             So when running a cluster, only make sure that you have webapps 
in there
-             that need to be clustered and remove the other ones.
-             A cluster has the following parameters:
-
-             className = the fully qualified name of the cluster class
-
-             clusterName = a descriptive name for your cluster, can be anything
-
-             mcastAddr = the multicast address, has to be the same for all the 
nodes
-
-             mcastPort = the multicast port, has to be the same for all the 
nodes
-             
-             mcastBindAddress = bind the multicast socket to a specific address
-             
-             mcastTTL = the multicast TTL if you want to limit your broadcast
-             
-             mcastSoTimeout = the multicast readtimeout 
-
-             mcastFrequency = the number of milliseconds in between sending a 
"I'm alive" heartbeat
-
-             mcastDropTime = the number a milliseconds before a node is 
considered "dead" if no heartbeat is received
-
-             tcpThreadCount = the number of threads to handle incoming 
replication requests, optimal would be the same amount of threads as nodes 
-
-             tcpListenAddress = the listen address (bind address) for TCP 
cluster request on this host, 
-                                in case of multiple ethernet cards.
-                                auto means that address becomes
-                                InetAddress.getLocalHost().getHostAddress()
-
-             tcpListenPort = the tcp listen port
-
-             tcpSelectorTimeout = the timeout (ms) for the Selector.select() 
method in case the OS
-                                  has a wakup bug in java.nio. Set to 0 for no 
timeout
-
-             printToScreen = true means that managers will also print to 
std.out
-
-             expireSessionsOnShutdown = true means that 
-
-             useDirtyFlag = true means that we only replicate a session after 
setAttribute,removeAttribute has been called.
-                            false means to replicate the session after each 
request.
-                            false means that replication would work for the 
following piece of code: (only for SimpleTcpReplicationManager)
-                            <%
-                            HashMap map = (HashMap)session.getAttribute("map");
-                            map.put("key","value");
-                            %>
-             replicationMode = can be either 'pooled', 'synchronous' or 
'asynchronous'.
-                               * Pooled means that the replication happens 
using several sockets in a synchronous way. Ie, the data gets replicated, then 
the request return. This is the same as the 'synchronous' setting except it 
uses a pool of sockets, hence it is multithreaded. This is the fastest and 
safest configuration. To use this, also increase the nr of tcp threads that you 
have dealing with replication.
-                               * Synchronous means that the thread that 
executes the request, is also the
-                               thread the replicates the data to the other 
nodes, and will not return until all
-                               nodes have received the information.
-                               * Asynchronous means that there is a specific 
'sender' thread for each cluster node,
-                               so the request thread will queue the 
replication request into a "smart" queue,
-                               and then return to the client.
-                               The "smart" queue is a queue where when a 
session is added to the queue, and the same session
-                               already exists in the queue from a previous 
request, that session will be replaced
-                               in the queue instead of replicating two 
requests. This almost never happens, unless there is a 
-                               large network delay.
-        -->             
-        <!--
-            When configuring for clustering, you also add in a valve to catch 
all the requests
-            coming in, at the end of the request, the session may or may not 
be replicated.
-            A session is replicated if and only if all the conditions are met:
-            1. useDirtyFlag is true or setAttribute or removeAttribute has 
been called AND
-            2. a session exists (has been created)
-            3. the request is not trapped by the "filter" attribute
-
-            The filter attribute is to filter out requests that could not 
modify the session,
-            hence we don't replicate the session after the end of this request.
-            The filter is negative, ie, anything you put in the filter, you 
mean to filter out,
-            ie, no replication will be done on requests that match one of the 
filters.
-            The filter attribute is delimited by ;, so you can't escape out ; 
even if you wanted to.
-
-            filter=".*\.gif;.*\.js;" means that we will not replicate the 
session after requests with the URI
-            ending with .gif and .js are intercepted.
-            
-            The deployer element can be used to deploy apps cluster wide.
-            Currently the deployment only deploys/undeploys to working members 
in the cluster
-            so no WARs are copied upons startup of a broken node.
-            The deployer watches a directory (watchDir) for WAR files when 
watchEnabled="true"
-            When a new war file is added the war gets deployed to the local 
instance,
-            and then deployed to the other instances in the cluster.
-            When a war file is deleted from the watchDir the war is undeployed 
locally 
-            and cluster wide
+        <!-- Place holder for brief cluster documentation, the rest will be 
online
         -->
         
         <!--
-        <Cluster className="org.apache.catalina.cluster.tcp.SimpleTcpCluster"
-                 
managerClassName="org.apache.catalina.cluster.session.DeltaManager"
+        <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
+                
managerClassName="org.apache.catalina.cluster.session.DeltaManager"
                  expireSessionsOnShutdown="false"
                  useDirtyFlag="true"
                  notifyListenersOnReplication="true">
+          <Channel className="org.apache.catalina.tribes.group.GroupChannel">
+            <Membership 
className="org.apache.catalina.tribes.membership.McastService"
+                        mcastAddr="228.0.0.4"
+                        mcastPort="45564"
+                        mcastFrequency="500"
+                        mcastDropTime="3000"/>
+            <Receiver 
className="org.apache.catalina.tribes.transport.nio.NioReceiver"
+                      tcpListenAddress="auto"
+                      tcpListenPort="auto"
+                      tcpSelectorTimeout="100"
+                      tcpThreadCount="6"/>
+
+            <Sender 
className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
+              <Transport 
className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
+            </Sender>
+            <Interceptor 
className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
+            <Interceptor 
className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
+            <Interceptor 
className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>
+         </Channel>
+
+          <Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
+                 
filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>
+
+          <Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
+                    tempDir="/tmp/war-temp/"
+                    deployDir="/tmp/war-deploy/"
+                    watchDir="/tmp/war-listen/"
+                    watchEnabled="false"/>
 
-            <Membership 
-                className="org.apache.catalina.cluster.mcast.McastService"
-                mcastAddr="228.0.0.4"
-                mcastPort="45564"
-                mcastFrequency="500"
-                mcastDropTime="3000"/>
-
-            <Receiver 
-                className="org.apache.catalina.cluster.tcp.ReplicationListener"
-                tcpListenAddress="auto"
-                tcpListenPort="4001"
-                tcpSelectorTimeout="100"
-                tcpThreadCount="6"/>
-
-            <Sender
-                
className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
-                replicationMode="pooled"
-                ackTimeout="15000"
-                waitForAck="true"/>
-
-            <Valve className="org.apache.catalina.cluster.tcp.ReplicationValve"
-                   
filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>
-                   
-            <Deployer 
className="org.apache.catalina.cluster.deploy.FarmWarDeployer"
-                      tempDir="/tmp/war-temp/"
-                      deployDir="/tmp/war-deploy/"
-                      watchDir="/tmp/war-listen/"
-                      watchEnabled="false"/>
-                      
-            <ClusterListener 
className="org.apache.catalina.cluster.session.ClusterSessionListener"/>
+          <ClusterListener 
className="org.apache.catalina.ha.session.ClusterSessionListener"/>
         </Cluster>
         -->        
 

Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/ClusterRuleSet.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/ClusterRuleSet.java?view=diff&rev=440412&r1=440411&r2=440412
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/ClusterRuleSet.java 
(original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/ClusterRuleSet.java Tue 
Sep  5 10:24:10 2006
@@ -119,7 +119,7 @@
             digester.addSetProperties(channelPrefix + "Sender/Transport");
             digester.addSetNext(channelPrefix + "Sender/Transport",
                                 "setTransport",
-                                
"org.apache.catalina.tribes.tcp.MultiPointSender");
+                                
"org.apache.catalina.tribes.transport.MultiPointSender");
 
 
             digester.addObjectCreate(channelPrefix + "Receiver",



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to