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.tomcat.util.res.StringManager;
import org.apache.catalina.valves.ValveBase;
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
if (catalinaSession instanceof DeltaSession)
((DeltaSession) catalinaSession).resetDeltaRequest();
changeRequestSessionID(request, response, sessionId, newSessionID);
- // 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()) {
log.debug(sm.getString("jvmRoute.changeSession", sessionId,
}
}
}
- 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"));
+ }
}