Document more manager options, far from complete
authorfhanik <fhanik@13f79535-47bb-0310-9956-ffa450edef68>
Thu, 12 Oct 2006 23:21:21 +0000 (23:21 +0000)
committerfhanik <fhanik@13f79535-47bb-0310-9956-ffa450edef68>
Thu, 12 Oct 2006 23:21:21 +0000 (23:21 +0000)
git-svn-id: https://svn.apache.org/repos/asf/tomcat/tc6.0.x/trunk@463510 13f79535-47bb-0310-9956-ffa450edef68

java/org/apache/catalina/ha/ClusterManager.java
java/org/apache/catalina/ha/session/BackupManager.java
java/org/apache/catalina/ha/session/DeltaManager.java
java/org/apache/catalina/ha/session/JvmRouteBinderValve.java
java/org/apache/catalina/ha/session/SimpleTcpReplicationManager.java
java/org/apache/catalina/ha/tcp/ReplicationValve.java
webapps/docs/config/cluster-manager.xml

index 3f69cf1..9a05faf 100644 (file)
@@ -82,13 +82,13 @@ public interface ClusterManager extends Manager {
     * @return Manager send only to same cluster domain.
     * @since 5.5.10
     */
-   public boolean isSendClusterDomainOnly();
+   public boolean doDomainReplication();
 
    /**
     * @param sendClusterDomainOnly Flag value.
     * @since 5.5.10
     */
-   public void setSendClusterDomainOnly(boolean sendClusterDomainOnly);
+   public void setDomainReplication(boolean domainReplication);
 
    /**
     * @param mode The mode
index 5461a52..dbc0401 100644 (file)
@@ -76,14 +76,14 @@ public class BackupManager extends StandardManager implements ClusterManager
     public void messageDataReceived(ClusterMessage msg) {
     }
 
-    public boolean isSendClusterDomainOnly() {
+    public boolean doDomainReplication() {
         return false;
     }
 
     /**
      * @param sendClusterDomainOnly The sendClusterDomainOnly to set.
      */
-    public void setSendClusterDomainOnly(boolean sendClusterDomainOnly) {
+    public void setDomainReplication(boolean sendClusterDomainOnly) {
     }
 
     /**
index 7082963..30d39e9 100644 (file)
@@ -358,14 +358,14 @@ public class DeltaManager extends ClusterManagerBase{
     /**
      * @return Returns the sendClusterDomainOnly.
      */
-    public boolean isSendClusterDomainOnly() {
+    public boolean doDomainReplication() {
         return sendClusterDomainOnly;
     }
     
     /**
      * @param sendClusterDomainOnly The sendClusterDomainOnly to set.
      */
-    public void setSendClusterDomainOnly(boolean sendClusterDomainOnly) {
+    public void setDomainReplication(boolean sendClusterDomainOnly) {
         this.sendClusterDomainOnly = sendClusterDomainOnly;
     }
 
@@ -581,7 +581,7 @@ public class DeltaManager extends ClusterManagerBase{
      */
     protected void send(SessionMessage msg) {
         if(cluster != null) {
-            if(isSendClusterDomainOnly())
+            if(doDomainReplication())
                 cluster.sendClusterDomain(msg);
             else
                 cluster.send(msg);
@@ -1280,7 +1280,7 @@ public class DeltaManager extends ClusterManagerBase{
      *            requesting node
      */
     protected void messageReceived(SessionMessage msg, Member sender) {
-        if(isSendClusterDomainOnly() && !checkSenderDomain(msg,sender)) {
+        if(doDomainReplication() && !checkSenderDomain(msg,sender)) {
             return;
         }
         ClassLoader contextLoader = Thread.currentThread().getContextClassLoader();
index f358451..4577d34 100644 (file)
@@ -386,7 +386,7 @@ public class JvmRouteBinderValve extends ValveBase implements ClusterValve, Life
         Context context = request.getContext();
         msg.setContextPath(context.getPath());
         msg.setHost(context.getParent().getName());
-        if(manager.isSendClusterDomainOnly())
+        if(manager.doDomainReplication())
             cluster.sendClusterDomain(msg);
         else
             cluster.send(msg);
index 36cabe1..99ef6a8 100644 (file)
@@ -112,14 +112,14 @@ public class SimpleTcpReplicationManager extends StandardManager implements Clus
         super();
     }
 
-    public boolean isSendClusterDomainOnly() {
+    public boolean doDomainReplication() {
         return sendClusterDomainOnly;
     }
     
     /**
      * @param sendClusterDomainOnly The sendClusterDomainOnly to set.
      */
-    public void setSendClusterDomainOnly(boolean sendClusterDomainOnly) {
+    public void setDomainReplication(boolean sendClusterDomainOnly) {
         this.sendClusterDomainOnly = sendClusterDomainOnly;
     }
   
index b00f76a..5f5f9ba 100644 (file)
@@ -546,7 +546,7 @@ public class ReplicationValve
     protected void send(ClusterManager manager, CatalinaCluster cluster, String sessionId) {
         ClusterMessage msg = manager.requestCompleted(sessionId);
         if (msg != null) {
-            if(manager.isSendClusterDomainOnly()) {
+            if(manager.doDomainReplication()) {
                 cluster.sendClusterDomain(msg);
             } else {
                 cluster.send(msg);
index 453d46f..76985b5 100644 (file)
 
 
 <section name="Introduction">
-
-  
+  A cluster manager is an extension to Tomcat's session manager interface, 
+  <code>org.apache.catalina.Manager</code>
+  A cluster manager must implement the <code>org.apache.catalina.ha.ClusterManager</code> and is solely 
+  responsible for how the session is replicated.<br/>
+  There are currently two different managers, the <code>org.apache.catalina.ha.session.DeltaManager</code> replicates deltas 
+  of session data to all members in the cluster. This implementation is proven and works very well, but has a limitation
+  as it requires the cluster members to be homogeneous, all nodes must deploy the same applications and be exact replicas.
+  The <code>org.apache.catalina.ha.session.BackupManager</code> also replicates deltas but only to one backup node.
+  The location of the backup node is known to all nodes in the cluster. It also supports heterogeneous deployments,
+  so the manager knows at what locations the webapp is deployed.<br/>
+  We are planning to add more managers with even more sophisticated backup mechanism to support even larger clusters.
+  Check back soon! 
 
 </section>
 
     <attribute name="className" required="true">
 
     </attribute>
+    <attribute name="domainReplication" required="false">
+      Set to true if you wish sessions to be replicated only to members that have the same logical
+      domain set. If set to false, session replication will ignore the domain setting the 
+      <code><a href="cluster-membership.html">&lt;Membership&gt;</a></code>
+      element.
+    </attribute>
+    <attribute name="defaultMode" required="false">
+      <b>Deprecated since 6.0.0</b>
+    </attribute>
+    <attribute name="expireSessionsOnShutdown" required="false">
+      
+    </attribute>
+    <attribute name="notifyListenersOnReplication" required="false">
+    
+    </attribute>
 
 
   </attributes>