You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by fh...@apache.org on 2006/10/06 23:17:52 UTC

svn commit: r453771 - in /tomcat/tc6.0.x/trunk: conf/ java/org/apache/catalina/ java/org/apache/catalina/ha/ java/org/apache/catalina/ha/deploy/ java/org/apache/catalina/ha/session/ java/org/apache/catalina/ha/tcp/ java/org/apache/catalina/mbeans/ java...

Author: fhanik
Date: Fri Oct  6 14:17:50 2006
New Revision: 453771

URL: http://svn.apache.org/viewvc?view=rev&rev=453771
Log:
Fixes to the clustering code, some changes in StandardSession broke func, this has been fixed.
consolidated the use of a nested <Manager> element

Modified:
    tomcat/tc6.0.x/trunk/conf/server.xml
    tomcat/tc6.0.x/trunk/java/org/apache/catalina/Cluster.java
    tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/CatalinaCluster.java
    tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/deploy/FarmWarDeployer.java
    tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/BackupManager.java
    tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/DeltaManager.java
    tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/DeltaSession.java
    tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/SimpleTcpReplicationManager.java
    tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java
    tomcat/tc6.0.x/trunk/java/org/apache/catalina/mbeans/MBeanUtils.java
    tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/group/GroupChannel.java
    tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/mbeans-descriptors.xml
    tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/membership/mbeans-descriptors.xml
    tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
    tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/transport/mbeans-descriptors.xml
    tomcat/tc6.0.x/trunk/webapps/docs/config/cluster.xml

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=453771&r1=453770&r2=453771
==============================================================================
--- tomcat/tc6.0.x/trunk/conf/server.xml (original)
+++ tomcat/tc6.0.x/trunk/conf/server.xml Fri Oct  6 14:17:50 2006
@@ -192,7 +192,8 @@
         -->
         
         <!--
-        <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster">
+        <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
+                 channelSendOptions="11">
           <Manager className="org.apache.catalina.ha.session.DeltaManager"
                    expireSessionsOnShutdown="false"
                    notifyListenersOnReplication="true"/>

Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/Cluster.java
URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/Cluster.java?view=diff&rev=453771&r1=453770&r2=453771
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/Cluster.java (original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/Cluster.java Fri Oct  6 14:17:50 2006
@@ -108,6 +108,12 @@
      * @param manager Manager
      */
     public void registerManager(Manager manager);
+    
+    /**
+     * Removes a manager from the cluster
+     * @param manager Manager
+     */
+    public void removeManager(Manager manager);
 
     // --------------------------------------------------------- Cluster Wide Deployments
     

Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/CatalinaCluster.java
URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/CatalinaCluster.java?view=diff&rev=453771&r1=453770&r2=453771
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/CatalinaCluster.java (original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/CatalinaCluster.java Fri Oct  6 14:17:50 2006
@@ -119,12 +119,11 @@
     public Map getManagers();
 
     public Manager getManager(String name);
-    public void removeManager(String name,Manager manager);
-    public void addManager(String name,Manager manager);
     public String getManagerName(String name, Manager manager);
     public Valve[] getValves();
     
     public void setChannel(Channel channel);
     public Channel getChannel();
+    
 
 }

Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/deploy/FarmWarDeployer.java
URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/deploy/FarmWarDeployer.java?view=diff&rev=453771&r1=453770&r2=453771
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/deploy/FarmWarDeployer.java (original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/deploy/FarmWarDeployer.java Fri Oct  6 14:17:50 2006
@@ -174,7 +174,7 @@
     /*
      * stop cluster wide deployments
      * 
-     * @see org.apache.catalina.cluster.ClusterDeployer#stop()
+     * @see org.apache.catalina.ha.ClusterDeployer#stop()
      */
     public void stop() throws LifecycleException {
         started = false;
@@ -426,7 +426,7 @@
     /*
      * Modifcation from watchDir war detected!
      * 
-     * @see org.apache.catalina.cluster.deploy.FileChangeListener#fileModified(java.io.File)
+     * @see org.apache.catalina.ha.deploy.FileChangeListener#fileModified(java.io.File)
      */
     public void fileModified(File newWar) {
         try {
@@ -450,7 +450,7 @@
     /*
      * War remvoe from watchDir
      * 
-     * @see org.apache.catalina.cluster.deploy.FileChangeListener#fileRemoved(java.io.File)
+     * @see org.apache.catalina.ha.deploy.FileChangeListener#fileRemoved(java.io.File)
      */
     public void fileRemoved(File removeWar) {
         try {
@@ -581,7 +581,7 @@
     /*
      * Call watcher to check for deploy changes
      * 
-     * @see org.apache.catalina.cluster.ClusterDeployer#backgroundProcess()
+     * @see org.apache.catalina.ha.ClusterDeployer#backgroundProcess()
      */
     public void backgroundProcess() {
         if (started) {

Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/BackupManager.java
URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/BackupManager.java?view=diff&rev=453771&r1=453770&r2=453771
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/BackupManager.java (original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/BackupManager.java Fri Oct  6 14:17:50 2006
@@ -177,9 +177,10 @@
      */
     public void start() throws LifecycleException {
         if ( this.started ) return;
+        
         try {
+            cluster.registerManager(this);
             CatalinaCluster catclust = (CatalinaCluster)cluster;
-            catclust.addManager(getName(), this);
             LazyReplicatedMap map = new LazyReplicatedMap(this,
                                                           catclust.getChannel(),
                                                           DEFAULT_REPL_TIMEOUT,
@@ -188,6 +189,7 @@
             map.setChannelSendOptions(mapSendOptions);
             this.sessions = map;
             super.start();
+            this.started = true;
         }  catch ( Exception x ) {
             log.error("Unable to start BackupManager",x);
             throw new LifecycleException("Failed to start BackupManager",x);
@@ -196,7 +198,7 @@
     
     public String getMapName() {
         CatalinaCluster catclust = (CatalinaCluster)cluster;
-        String name = catclust.getManagerName(getName(),this)+"-"+"";
+        String name = catclust.getManagerName(getName(),this)+"-"+"map";
         if ( log.isDebugEnabled() ) log.debug("Backup manager, Setting map name to:"+name);
         return name;
     }
@@ -225,7 +227,7 @@
         } finally {
             super.stop();
         }
-        cluster.removeManager(getName(),this);
+        cluster.removeManager(this);
 
     }
 

Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/DeltaManager.java
URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/DeltaManager.java?view=diff&rev=453771&r1=453770&r2=453771
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/DeltaManager.java (original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/DeltaManager.java Fri Oct  6 14:17:50 2006
@@ -837,7 +837,7 @@
             if (log.isInfoEnabled()) log.info(sm.getString("deltaManager.startClustering", getName()));
             //to survice context reloads, as only a stop/start is called, not
             // createManager
-            ((CatalinaCluster)cluster).addManager(getName(), this);
+            cluster.registerManager(this);
 
             getAllClusterSessions();
 
@@ -1015,7 +1015,7 @@
 
         // Require a new random number generator if we are restarted
         this.random = null;
-        getCluster().removeManager(getName(),this);
+        getCluster().removeManager(this);
         replicationValve = null;
         if (initialized) {
             destroy();

Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/DeltaSession.java
URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/DeltaSession.java?view=diff&rev=453771&r1=453770&r2=453771
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/DeltaSession.java (original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/DeltaSession.java Fri Oct  6 14:17:50 2006
@@ -43,6 +43,7 @@
 import org.apache.catalina.util.StringManager;
 import org.apache.catalina.session.StandardManager;
 import org.apache.catalina.session.ManagerBase;
+import java.util.concurrent.atomic.AtomicInteger;
 
 /**
  *
@@ -103,6 +104,7 @@
 
     public DeltaSession(Manager manager) {
         super(manager);
+        accessCount = new AtomicInteger();
         this.resetDeltaRequest();
     }
 
@@ -545,6 +547,7 @@
         isValid = ( (Boolean) stream.readObject()).booleanValue();
         thisAccessedTime = ( (Long) stream.readObject()).longValue();
         version = ( (Long) stream.readObject()).longValue();
+        this.accessCount = new AtomicInteger();
         boolean hasPrincipal = stream.readBoolean();
         principal = null;
         if (hasPrincipal) {

Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/SimpleTcpReplicationManager.java
URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/SimpleTcpReplicationManager.java?view=diff&rev=453771&r1=453770&r2=453771
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/SimpleTcpReplicationManager.java (original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/SimpleTcpReplicationManager.java Fri Oct  6 14:17:50 2006
@@ -46,10 +46,7 @@
  * @author Bela Ban (modifications for synchronous replication)
  * @version 1.0 for TC 4.0
  * Description: The InMemoryReplicationManager is a session manager that replicated
- * session information in memory. It uses <a href="www.javagroups.com">JavaGroups</a> as
- * a communication protocol to ensure guaranteed and ordered message delivery.
- * JavaGroups also provides a very flexible protocol stack to ensure that the replication
- * can be used in any environment.
+ * session information in memory. 
  * <BR><BR>
  * The InMemoryReplicationManager extends the StandardManager hence it allows for us
  * to inherit all the basic session management features like expiration, session listeners etc
@@ -269,7 +266,6 @@
                      getName()+"] is not distributable. Ignoring message");
             return null;
         }
-        //notify javagroups
         try
         {
             if ( invalidatedSessions.get(sessionId) != null ) {
@@ -478,7 +474,6 @@
     public void start() throws LifecycleException {
         mManagerRunning = true;
         super.start();
-        //start the javagroups channel
         try {
             //the channel is already running
             if ( mChannelStarted ) return;
@@ -488,7 +483,7 @@
                 log.error("Starting... no cluster associated with this context:"+getName());
                 return;
             }
-            cluster.addManager(getName(),this);
+            cluster.registerManager(this);
 
             if (cluster.getMembers().length > 0) {
                 Member mbr = cluster.getMembers()[0];
@@ -543,15 +538,10 @@
         mManagerRunning = false;
         mChannelStarted = false;
         super.stop();
-        //stop the javagroup channel
         try
         {
             this.sessions.clear();
-            cluster.removeManager(getName(),this);
-//            mReplicationListener.stopListening();
-//            mReplicationTransmitter.stop();
-//            service.stop();
-//            service = null;
+            cluster.removeManager(this);
         }
         catch ( Exception x )
         {

Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java
URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java?view=diff&rev=453771&r1=453770&r2=453771
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java (original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java Fri Oct  6 14:17:50 2006
@@ -345,6 +345,10 @@
         this.managerTemplate = managerTemplate;
     }
 
+    public void setChannelSendOptions(int channelSendOptions) {
+        this.channelSendOptions = channelSendOptions;
+    }
+
     /**
      * has members
      */
@@ -479,6 +483,10 @@
         return managerTemplate;
     }
 
+    public int getChannelSendOptions() {
+        return channelSendOptions;
+    }
+
     /**
      * Create new Manager without add to cluster (comes with start the manager)
      * 
@@ -493,6 +501,7 @@
         Manager manager = null;
         try {
             manager = managerTemplate.cloneFromTemplate();
+            ((ClusterManager)manager).setName(name);
         } catch (Exception x) {
             log.error("Unable to clone cluster manager, defaulting to org.apache.catalina.ha.session.DeltaManager", x);
             manager = new org.apache.catalina.ha.session.DeltaManager();
@@ -503,13 +512,23 @@
     }
     
     public void registerManager(Manager manager) {
-        manager.setDistributable(true);
-        if (manager instanceof ClusterManager) {
-            ClusterManager cmanager = (ClusterManager) manager ;
-            cmanager.setDefaultMode(false);
-            cmanager.setName(getManagerName(((ClusterManager)manager).getName(),manager));
-            cmanager.setCluster(this);
+    
+        if (! (manager instanceof ClusterManager)) {
+            log.warn("Manager [ " + manager + "] does not implement ClusterManager, addition to cluster has been aborted.");
+            return;
         }
+        ClusterManager cmanager = (ClusterManager) manager ;
+        cmanager.setDistributable(true);
+        // Notify our interested LifecycleListeners
+        lifecycle.fireLifecycleEvent(BEFORE_MANAGERREGISTER_EVENT, manager);
+        String clusterName = getManagerName(cmanager.getName(), manager);
+        cmanager.setName(clusterName);
+        cmanager.setCluster(this);
+        cmanager.setDefaultMode(false);
+    
+        managers.put(clusterName, manager);
+        // Notify our interested LifecycleListeners
+        lifecycle.fireLifecycleEvent(AFTER_MANAGERREGISTER_EVENT, manager);    
     }
 
     /**
@@ -517,45 +536,16 @@
      * 
      * @see org.apache.catalina.ha.CatalinaCluster#removeManager(java.lang.String,Manager)
      */
-    public void removeManager(String name,Manager manager) {
-        if (manager != null) {
+    public void removeManager(Manager manager) {
+        if (manager != null && manager instanceof ClusterManager ) {
+            ClusterManager cmgr = (ClusterManager) manager;
             // Notify our interested LifecycleListeners
             lifecycle.fireLifecycleEvent(BEFORE_MANAGERUNREGISTER_EVENT,manager);
-            managers.remove(getManagerName(name,manager));
-            if (manager instanceof ClusterManager) ((ClusterManager) manager).setCluster(null);
+            managers.remove(getManagerName(cmgr.getName(),manager));
+            cmgr.setCluster(null);
             // Notify our interested LifecycleListeners
             lifecycle.fireLifecycleEvent(AFTER_MANAGERUNREGISTER_EVENT, manager);
         }
-    }
-
-    /**
-     * add an application to cluster replication bus
-     * 
-     * @param name
-     *            of the context
-     * @param manager
-     *            manager to register
-     * @see org.apache.catalina.ha.CatalinaCluster#addManager(java.lang.String,
-     *      org.apache.catalina.Manager)
-     */
-    public void addManager(String name, Manager manager) {
-        if (!manager.getDistributable()) {
-            log.warn("Manager with name " + name + " is not distributable, can't add as cluster manager");
-            return;
-        }
-        // Notify our interested LifecycleListeners
-        lifecycle.fireLifecycleEvent(BEFORE_MANAGERREGISTER_EVENT, manager);
-        String clusterName = getManagerName(name, manager);
-        if (manager instanceof ClusterManager) {
-            ClusterManager cmanager = (ClusterManager) manager ;
-            cmanager.setName(clusterName);
-            cmanager.setCluster(this);
-            //not needed anymore, we have an explicit Manager element
-            //if(cmanager.isDefaultMode()) transferProperty("manager",cmanager);
-        }
-        managers.put(clusterName, manager);
-        // Notify our interested LifecycleListeners
-        lifecycle.fireLifecycleEvent(AFTER_MANAGERREGISTER_EVENT, manager);
     }
 
     /**

Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/mbeans/MBeanUtils.java
URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/mbeans/MBeanUtils.java?view=diff&rev=453771&r1=453770&r2=453771
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/mbeans/MBeanUtils.java (original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/mbeans/MBeanUtils.java Fri Oct  6 14:17:50 2006
@@ -1366,7 +1366,7 @@
             registry.loadDescriptors("org.apache.catalina.session", cl);
             registry.loadDescriptors("org.apache.catalina.startup", cl);
             registry.loadDescriptors("org.apache.catalina.users", cl);
-            registry.loadDescriptors("org.apache.catalina.cluster", cl);
+            registry.loadDescriptors("org.apache.catalina.ha", cl);
             registry.loadDescriptors("org.apache.catalina.connector", cl);
             registry.loadDescriptors("org.apache.catalina.valves",  cl);
         }

Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/group/GroupChannel.java
URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/group/GroupChannel.java?view=diff&rev=453771&r1=453770&r2=453771
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/group/GroupChannel.java (original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/group/GroupChannel.java Fri Oct  6 14:17:50 2006
@@ -504,7 +504,7 @@
         if (!this.channelListeners.contains(channelListener) ) {
             this.channelListeners.add(channelListener);
         } else {
-            throw new IllegalArgumentException("Listener already exists:"+channelListener);
+            throw new IllegalArgumentException("Listener already exists:"+channelListener+"["+channelListener.getClass().getName()+"]");
         }
     }
 

Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/mbeans-descriptors.xml
URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/mbeans-descriptors.xml?view=diff&rev=453771&r1=453770&r2=453771
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/mbeans-descriptors.xml (original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/mbeans-descriptors.xml Fri Oct  6 14:17:50 2006
@@ -6,7 +6,7 @@
           description="Tcp Cluster implementation"
                domain="Catalina"
                 group="Cluster"
-                 type="org.apache.catalina.cluster.tcp.SimpleTcpCluster">
+                 type="org.apache.catalina.ha.tcp.SimpleTcpCluster">
 
     <attribute   name="protocolStack"
           description="JavaGroups protocol stack selection"
@@ -20,7 +20,7 @@
           description="Clustered implementation of the Manager interface"
                domain="Catalina"
                 group="Manager"
-                 type="org.apache.catalina.cluster.tcp.SimpleTcpReplicationManager">
+                 type="org.apache.catalina.ha.tcp.SimpleTcpReplicationManager">
 
     <attribute   name="algorithm"
           description="The message digest algorithm to be used when generating
@@ -77,7 +77,7 @@
           description="Valve for simple tcp replication"
                domain="Catalina"
                 group="Valve"
-                 type="org.apache.catalina.cluster.tcp.ReplicationValve">
+                 type="org.apache.catalina.ha.tcp.ReplicationValve">
 
     <attribute   name="className"
           description="Fully qualified class name of the managed object"

Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/membership/mbeans-descriptors.xml
URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/membership/mbeans-descriptors.xml?view=diff&rev=453771&r1=453770&r2=453771
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/membership/mbeans-descriptors.xml (original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/membership/mbeans-descriptors.xml Fri Oct  6 14:17:50 2006
@@ -8,7 +8,7 @@
            description="Cluster Membership service implementation"
                domain="Catalina"
                 group="Cluster"
-                 type="org.apache.catalina.cluster.mcast.McastService">
+                 type="org.apache.catalina.ha.mcast.McastService">
     <attribute   name="info"
           description="Class version info"
                  type="java.lang.String"

Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java
URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java?view=diff&rev=453771&r1=453770&r2=453771
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java (original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/tipis/AbstractReplicatedMap.java Fri Oct  6 14:17:50 2006
@@ -275,6 +275,7 @@
         if ( log.isTraceEnabled() )
             log.trace("Replicate invoked on key:"+key);
         MapEntry entry = (MapEntry)super.get(key);
+        if ( entry == null ) return;
         if ( !entry.isSerializable() ) return;
         if (entry != null && entry.isPrimary() && entry.getBackupNodes()!= null && entry.getBackupNodes().length > 0) {
             Object value = entry.getValue();

Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/transport/mbeans-descriptors.xml
URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/transport/mbeans-descriptors.xml?view=diff&rev=453771&r1=453770&r2=453771
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/transport/mbeans-descriptors.xml (original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/tribes/transport/mbeans-descriptors.xml Fri Oct  6 14:17:50 2006
@@ -8,7 +8,7 @@
            description="Tcp Cluster implementation"
                domain="Catalina"
                 group="Cluster"
-                 type="org.apache.catalina.cluster.tcp.SimpleTcpCluster">
+                 type="org.apache.catalina.ha.tcp.SimpleTcpCluster">
     <attribute   name="info"
           description="Class version info"
                  type="java.lang.String"
@@ -48,7 +48,7 @@
                returnType="void">
       <parameter name="message"
                  description="replication message"
-                 type="org.apache.catalina.cluster.ClusterMessage"/>
+                 type="org.apache.catalina.ha.ClusterMessage"/>
     </operation>
     
     <operation   name="sendClusterDomain"
@@ -57,7 +57,7 @@
                returnType="void">
       <parameter name="message"
                  description="replication message"
-                 type="org.apache.catalina.cluster.ClusterMessage"/>
+                 type="org.apache.catalina.ha.ClusterMessage"/>
     </operation>
         
     <operation   name="sendToMember"
@@ -90,7 +90,7 @@
            description="Tcp Cluster NioReceiver implementation"
                domain="Catalina"
                 group="Cluster"
-                 type="org.apache.catalina.cluster.tcp.ClusterReceiverBase">
+                 type="org.apache.catalina.ha.tcp.ClusterReceiverBase">
     <attribute   name="info"
           description="Class version info"
                  type="java.lang.String"
@@ -183,7 +183,7 @@
            description="Tcp Cluster SocketReplicationListener implementation"
                domain="Catalina"
                 group="Cluster"
-                 type="org.apache.catalina.cluster.tcp.SocketReplicationListener">
+                 type="org.apache.catalina.ha.tcp.SocketReplicationListener">
     <attribute   name="info"
           description="Class version info"
                  type="java.lang.String"
@@ -276,7 +276,7 @@
           description="Tcp replication transmitter"
                domain="Catalina"
                 group="ClusterSender"
-                 type="org.apache.catalina.cluster.tcp.ReplicationTransmitter">
+                 type="org.apache.catalina.ha.tcp.ReplicationTransmitter">
     <attribute   name="info"
           description="Class version info"
                  type="java.lang.String"
@@ -358,7 +358,7 @@
           description="Async Cluster Sender"
                domain="Catalina"
                 group="IDataSender"
-                 type="org.apache.catalina.cluster.tcp.AsyncSocketSender">
+                 type="org.apache.catalina.ha.tcp.AsyncSocketSender">
     <attribute   name="info"
           description="Class version info"
                  type="java.lang.String"
@@ -537,7 +537,7 @@
           description="Multi Socket Sender, more than one socket per member"
                domain="Catalina"
                 group="IDataSender"
-                 type="org.apache.catalina.cluster.tcp.PooledSocketSender">
+                 type="org.apache.catalina.ha.tcp.PooledSocketSender">
     <attribute   name="address"
           description="sender ip address"
                  type="java.net.InetAddress"
@@ -617,7 +617,7 @@
           description="Sync Cluster Sender"
                domain="Catalina"
                 group="IDataSender"
-                 type="org.apache.catalina.cluster.tcp.SocketSender">
+                 type="org.apache.catalina.ha.tcp.SocketSender">
     <attribute   name="address"
           description="sender ip address"
                  type="java.net.InetAddress"
@@ -776,7 +776,7 @@
           description="Valve for simple tcp replication"
                domain="Catalina"
                 group="Valve"
-                 type="org.apache.catalina.cluster.tcp.ReplicationValve">
+                 type="org.apache.catalina.ha.tcp.ReplicationValve">
     <attribute   name="info"
           description="Class version info"
                  type="java.lang.String"

Modified: tomcat/tc6.0.x/trunk/webapps/docs/config/cluster.xml
URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/webapps/docs/config/cluster.xml?view=diff&rev=453771&r1=453770&r2=453771
==============================================================================
--- tomcat/tc6.0.x/trunk/webapps/docs/config/cluster.xml (original)
+++ tomcat/tc6.0.x/trunk/webapps/docs/config/cluster.xml Fri Oct  6 14:17:50 2006
@@ -110,6 +110,20 @@
          <code>org.apache.catalina.ha.tcp.SimpleTcpCluster</code>
       </p>
     </attribute>
+    <attribute name="channelSendOptions" required="true">
+      <p>The Tribes channel send options, default is 11
+      <source>
+        int options= Channel.SEND_OPTIONS_ASYNCHRONOUS | 
+                     Channel.SEND_OPTIONS_SYNCHRONIZED_ACK | 
+                     Channel.SEND_OPTIONS_USE_ACK;
+      </source>
+      Some of the values are:<br/>
+      <code>Channel.SEND_OPTIONS_SYNCHRONIZED_ACK = 0x0004</code><br/>
+      <code>Channel.SEND_OPTIONS_ASYNCHRONOUS = 0x0008</code><br/>
+      <code>Channel.SEND_OPTIONS_USE_ACK = 0x0002</code><br/>
+      </p>
+    </attribute>
+
     <attribute name="doClusterLog" required="false">
       <p><b>Deprecated since 6.0.0</b></p>
       <p>Possible values are <code>true</code> or <code>false</code><br/>



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


Re: svn commit: r453771 - in /tomcat/tc6.0.x/trunk: conf/ java/org/apache/catalina/ java/org/apache/catalina/ha/ java/org/apache/catalina/ha/deploy/ java/org/apache/catalina/ha/session/ java/org/apache/catalina/ha/tcp/ java/org/apache/catalina/mbeans/ java...

Posted by Filip Hanik - Dev Lists <de...@hanik.com>.
Remy Maucherat wrote:
> fhanik@apache.org wrote:
>> Author: fhanik
>> Date: Fri Oct  6 14:17:50 2006
>> New Revision: 453771
>>
>> URL: http://svn.apache.org/viewvc?view=rev&rev=453771
>> Log:
>> Fixes to the clustering code, some changes in StandardSession broke 
>> func, this has been fixed.
>> consolidated the use of a nested <Manager> element
>>
>
>> Modified: 
>> tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/DeltaSession.java 
>>
>> URL: 
>> http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/DeltaSession.java?view=diff&rev=453771&r1=453770&r2=453771 
>>
>> ============================================================================== 
>>
>> --- 
>> tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/DeltaSession.java 
>> (original)
>> +++ 
>> tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/DeltaSession.java 
>> Fri Oct  6 14:17:50 2006
>> @@ -43,6 +43,7 @@
>>  import org.apache.catalina.util.StringManager;
>>  import org.apache.catalina.session.StandardManager;
>>  import org.apache.catalina.session.ManagerBase;
>> +import java.util.concurrent.atomic.AtomicInteger;
>>  
>>  /**
>>   *
>> @@ -103,6 +104,7 @@
>>  
>>      public DeltaSession(Manager manager) {
>>          super(manager);
>> +        accessCount = new AtomicInteger();
>>          this.resetDeltaRequest();
>>      }
>>  
>> @@ -545,6 +547,7 @@
>>          isValid = ( (Boolean) stream.readObject()).booleanValue();
>>          thisAccessedTime = ( (Long) stream.readObject()).longValue();
>>          version = ( (Long) stream.readObject()).longValue();
>> +        this.accessCount = new AtomicInteger();
>>          boolean hasPrincipal = stream.readBoolean();
>>          principal = null;
>>          if (hasPrincipal) {
>
> I was wondering why this was affected by the problem, and it's 
> definitely my fault. It would be possible to use the ACTIVITY_CHECK 
> flag if you'd want to make usage of accessCount optional. However, I 
> found a possible problem: the activate method of the superclass 
> doesn't seem to get called, and sessionDidActivate is apparently not 
> processed anywhere else either (of course, same for passivate). Is 
> that normal ?
my fault, I was fixing so much stuff, I should call activate when the 
object is done deserializing, I will work more on this during the 
hackathon the next two days

Filip

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


Re: svn commit: r453771 - in /tomcat/tc6.0.x/trunk: conf/ java/org/apache/catalina/ java/org/apache/catalina/ha/ java/org/apache/catalina/ha/deploy/ java/org/apache/catalina/ha/session/ java/org/apache/catalina/ha/tcp/ java/org/apache/catalina/mbeans/ java...

Posted by Remy Maucherat <re...@apache.org>.
fhanik@apache.org wrote:
> Author: fhanik
> Date: Fri Oct  6 14:17:50 2006
> New Revision: 453771
> 
> URL: http://svn.apache.org/viewvc?view=rev&rev=453771
> Log:
> Fixes to the clustering code, some changes in StandardSession broke func, this has been fixed.
> consolidated the use of a nested <Manager> element
> 

> Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/DeltaSession.java
> URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/DeltaSession.java?view=diff&rev=453771&r1=453770&r2=453771
> ==============================================================================
> --- tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/DeltaSession.java (original)
> +++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/session/DeltaSession.java Fri Oct  6 14:17:50 2006
> @@ -43,6 +43,7 @@
>  import org.apache.catalina.util.StringManager;
>  import org.apache.catalina.session.StandardManager;
>  import org.apache.catalina.session.ManagerBase;
> +import java.util.concurrent.atomic.AtomicInteger;
>  
>  /**
>   *
> @@ -103,6 +104,7 @@
>  
>      public DeltaSession(Manager manager) {
>          super(manager);
> +        accessCount = new AtomicInteger();
>          this.resetDeltaRequest();
>      }
>  
> @@ -545,6 +547,7 @@
>          isValid = ( (Boolean) stream.readObject()).booleanValue();
>          thisAccessedTime = ( (Long) stream.readObject()).longValue();
>          version = ( (Long) stream.readObject()).longValue();
> +        this.accessCount = new AtomicInteger();
>          boolean hasPrincipal = stream.readBoolean();
>          principal = null;
>          if (hasPrincipal) {

I was wondering why this was affected by the problem, and it's 
definitely my fault. It would be possible to use the ACTIVITY_CHECK flag 
if you'd want to make usage of accessCount optional. However, I found a 
possible problem: the activate method of the superclass doesn't seem to 
get called, and sessionDidActivate is apparently not processed anywhere 
else either (of course, same for passivate). Is that normal ?

Rémy

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