tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ma...@apache.org
Subject svn commit: r795052 - in /tomcat/container/tc5.5.x: modules/ha/src/share/org/apache/catalina/ha/session/JvmRouteBinderValve.java modules/ha/src/share/org/apache/catalina/ha/session/LocalStrings.properties webapps/docs/changelog.xml
Date Fri, 17 Jul 2009 11:38:12 GMT
Author: markt
Date: Fri Jul 17 11:38:11 2009
New Revision: 795052

URL: http://svn.apache.org/viewvc?rev=795052&view=rev
Log:
Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=40551
Enable the JvmRouteBinderValve to work with PersistentManagers as well as clusters
Patch by Chris Chandler

Modified:
    tomcat/container/tc5.5.x/modules/ha/src/share/org/apache/catalina/ha/session/JvmRouteBinderValve.java
    tomcat/container/tc5.5.x/modules/ha/src/share/org/apache/catalina/ha/session/LocalStrings.properties
    tomcat/container/tc5.5.x/webapps/docs/changelog.xml

Modified: tomcat/container/tc5.5.x/modules/ha/src/share/org/apache/catalina/ha/session/JvmRouteBinderValve.java
URL: http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/modules/ha/src/share/org/apache/catalina/ha/session/JvmRouteBinderValve.java?rev=795052&r1=795051&r2=795052&view=diff
==============================================================================
--- tomcat/container/tc5.5.x/modules/ha/src/share/org/apache/catalina/ha/session/JvmRouteBinderValve.java
(original)
+++ tomcat/container/tc5.5.x/modules/ha/src/share/org/apache/catalina/ha/session/JvmRouteBinderValve.java
Fri Jul 17 11:38:11 2009
@@ -38,6 +38,7 @@
 import org.apache.catalina.connector.Request;
 import org.apache.catalina.connector.Response;
 import org.apache.catalina.session.ManagerBase;
+import org.apache.catalina.session.PersistentManager;
 import org.apache.catalina.util.LifecycleSupport;
 import org.apache.catalina.util.StringManager;
 import org.apache.catalina.valves.ValveBase;
@@ -195,14 +196,18 @@
             ServletException {
 
          if (getEnabled() 
-             && getCluster() != null
              && request.getContext() != null
              && request.getContext().getDistributable() ) {
              // valve cluster can access manager - other cluster handle turnover 
              // at host level - hopefully!
              Manager manager = request.getContext().getManager();
-             if (manager != null && manager instanceof ClusterManager
-                     && getCluster().getManager(((ClusterManager)manager).getName())
!= null)
+
+             if (manager != null && (
+                     (manager instanceof ClusterManager
+                       && getCluster() != null
+                       && getCluster().getManager(((ClusterManager)manager).getName())
!= null)
+                     ||
+                     (manager instanceof PersistentManager)))
                  handlePossibleTurnover(request, response);
         }
         // Pass this request on to the next valve in our pipeline
@@ -357,9 +362,13 @@
             }
             request.setAttribute(sessionIdAttribute, sessionId);
         }
-        // now sending the change to all other clusternode!
-        ClusterManager manager = (ClusterManager)catalinaSession.getManager();
-        sendSessionIDClusterBackup(manager,request,sessionId, newSessionID);
+        
+        if (getCluster() != null) {
+            // now sending the change to all other clusternode!
+            ClusterManager manager = (ClusterManager)catalinaSession.getManager();
+            sendSessionIDClusterBackup(manager,request,sessionId, newSessionID);
+        }
+
         lifecycle
                 .fireLifecycleEvent("After session migration", catalinaSession);
         if (log.isDebugEnabled()) {
@@ -507,13 +516,12 @@
                 }
             }
         }
-        if (cluster == null) {
-            throw new RuntimeException("No clustering support at container "
-                    + container.getName());
-        }
         
-        if (log.isInfoEnabled())
+        if (log.isInfoEnabled()) {
             log.info(sm.getString("jvmRoute.valve.started"));
+            if (cluster == null)
+                log.info(sm.getString("jvmRoute.noCluster"));
+        }
 
     }
 

Modified: tomcat/container/tc5.5.x/modules/ha/src/share/org/apache/catalina/ha/session/LocalStrings.properties
URL: http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/modules/ha/src/share/org/apache/catalina/ha/session/LocalStrings.properties?rev=795052&r1=795051&r2=795052&view=diff
==============================================================================
--- tomcat/container/tc5.5.x/modules/ha/src/share/org/apache/catalina/ha/session/LocalStrings.properties
(original)
+++ tomcat/container/tc5.5.x/modules/ha/src/share/org/apache/catalina/ha/session/LocalStrings.properties
Fri Jul 17 11:38:11 2009
@@ -79,6 +79,7 @@
 jvmRoute.lostSession=Lost Session [{0}] at path [{1}]
 jvmRoute.missingJvmRouteAttribute=No engine jvmRoute attribute configured!
 jvmRoute.newSessionCookie=Setting cookie with session id [{0}] name: [{1}] path: [{2}] secure:
[{3}]
+jvmRoute.noCluster=The JvmRouterBinderValve is configured, but clustering is not being used.
Fail over will still work, providing a PersistentManager is used.
 jvmRoute.notFoundManager=Not found Cluster DeltaManager {0} at {1}
 jvmRoute.receiveMessage.sessionIDChanged=Cluster JvmRouteSessionIDBinderListener received
orginal session ID [{0}] set to new id [{1}] for context path [{2}]
 jvmRoute.run.already=jvmRoute SessionID receiver run already

Modified: tomcat/container/tc5.5.x/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/container/tc5.5.x/webapps/docs/changelog.xml?rev=795052&r1=795051&r2=795052&view=diff
==============================================================================
--- tomcat/container/tc5.5.x/webapps/docs/changelog.xml (original)
+++ tomcat/container/tc5.5.x/webapps/docs/changelog.xml Fri Jul 17 11:38:11 2009
@@ -287,6 +287,11 @@
         Fix minor memory leak found by find bugs. (markt, rjung)
       </fix>
       <fix>
+        <bug>40551</bug>: Enable the JvmRouteBinderValve to work with
+        PersistentManagers as well as clustering. Patch by Chris Chandler.
+        (markt)
+      </fix>
+      <fix>
         <bug>46357</bug>: Corrected test for host's parent must be an engine.
         (markt, rjung)
       </fix>



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


Mime
View raw message