Announcement Announcement Module
Collapse
No announcement yet.
Cluster session replication problem Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • Cluster session replication problem

    Hello,

    We are developing an application that uses OpenLaszlo and Spring Web Flow 1.0-rc3.

    The application works perfectly in one Tomcat 5.5 node. But, when we deploy the application in a Tomcat 5.5 cluster (two nodes with mod_jk), we are having problems with session replication.

    To execute flow, we are using FlowExecutor, launch and signalEvent methods.

    The following exception is thrown:

    Code:
    ERROR - Unable to serialize delta request for session id [....... .node01]
    java.io.NotSerializableException: org.springframework.webflow.context.SharedMapDecorator
          at ....
          ....
    We store externalContext.getSessionMap() in the HTTP Session in order to invoke FlowExecutor.launch method next time.

    Code:
      ...
      externalContext.setSessionMap((SharedAttributeMap) httpSession.getAttribute("sessionMap"));
      externalContext.setApplicationMap((SharedAttributeMap) httpSession.getAttribute("applicationMap"));
    
      ...
    
      WebApplicationContext applicationContext = WebApplicationContextUtils.getRequiredWebApplicationContext(OpenLaszloHelper.getServletRequest().getSession().getServletContext());
      FlowExecutor flowExecutor = (FlowExecutor) applicationContext.getBean("flowExecutor");
    
      ResponseInstruction responseInstruction = flowExecutor.signalEvent(eventId, flowExecutionKey, externalContext);
    
      ...
    I have downloaded SharedMapDecorator.java source and added "implements Serializable" and now it works perfectly in the cluster, balancing and replicating the session, but I suspect there is a better way to do this.

    Code:
    public class SharedMapDecorator implements SharedMap, Serializable {
        ...
    Any help would be very much appreciated.

    Thanks a lot.
Working...
X