Announcement Announcement Module
No announcement yet.
SWF size limit on Weblogic? Page Title Module
Move Remove Collapse
Conversation Detail Module
  • Filter
  • Time
  • Show
Clear All
new posts

  • SWF size limit on Weblogic?

    Hi all

    We're developing a flow using SWF PR5 and Weblogic 8.1 SP4. Whe have been developing in Tomcat 4.31 because of faster startup times, and when we tested our flow in Weblogic we stumbled upon one slight problem: we appear to have hit a limit on the flow size.
    Our flow.xml has 84 Action-States, 68 View-States and a total of 1236 lines with comments.
    We removed two states from the flow and it worked, but when we added the two lines again, it failed.
    The error it generates says that the flow Id doesn't exist, this before entering the first method of our flow.

    Has anyone seen anything like this? If yes, how did you fix it? For us, changing from weblogic to Tomcat or any other server is not an option.

    Many thanks,
    Rui Pacheco

  • #2
    This is very bizar behaviour... My guess is that there is something going wrong while parsing the flow, but I have no idea why that would happen.
    Could you post the exact exception that you get, including stack trace. Also, if the exception log contains information about 'nested' exceptions that caused the exception that you see, also post those.



    • #3
      Stack trace

      This is all I get on my logs:

      Error 500--Internal Server Error
      org.springframework.webflow.execution.NoSuchFlowEx ecutionException: No executing flow could be found with id 'B5728532-7118-51EE-C2E1-E7C816A3A32F' -- perhaps the flow has ended or expired? This could happen if your users are relying on browser history (typically via the back button) that reference ended flows.; nested exception is java.lang.IllegalStateException: No session attribute 'org.springframework.webflow.execution.FlowExecuti on.B5728532-7118-51EE-C2E1-E7C816A3A32F' found
      java.lang.IllegalStateException: No session attribute 'org.springframework.webflow.execution.FlowExecuti on.B5728532-7118-51EE-C2E1-E7C816A3A32F' found
      at org.springframework.web.util.WebUtils.getRequiredS essionAttribute(
      at org.springframework.webflow.execution.servlet.Http SessionFlowExecutionStorage.load(HttpSessionFlowEx
      at org.springframework.webflow.execution.FlowExecutio nManager.onEvent(
      at org.springframework.webflow.execution.FlowExecutio nManager.onEvent(
      at org.springframework.webflow.execution.servlet.Serv letFlowExecutionManager.handle(ServletFlowExecutio
      at org.springframework.webflow.mvc.FlowController.han dleRequestInternal(
      at org.springframework.web.servlet.mvc.AbstractContro ller.handleRequest(
      at org.springframework.web.servlet.mvc.SimpleControll erHandlerAdapter.handle(SimpleControllerHandlerAda
      at org.springframework.web.servlet.DispatcherServlet. doDispatch(
      at org.springframework.web.servlet.DispatcherServlet. doService(
      at org.springframework.web.servlet.FrameworkServlet.s erviceWrapper(
      at org.springframework.web.servlet.FrameworkServlet.d oPost(
      at javax.servlet.http.HttpServlet.service(HttpServlet .java:760)
      at javax.servlet.http.HttpServlet.service(HttpServlet .java:853)
      at weblogic.servlet.internal.ServletStubImpl$ServletI
      at weblogic.servlet.internal.ServletStubImpl.invokeSe rvlet(
      at weblogic.servlet.internal.ServletStubImpl.invokeSe rvlet(
      at weblogic.servlet.internal.WebAppServletContext$Ser :6718)
      at t.doAs(
      at weblogic.servlet.internal.WebAppServletContext.inv okeServlet(
      at weblogic.servlet.internal.ServletRequestImpl.execu te(
      at weblogic.kernel.ExecuteThread.execute(ExecuteThrea
      at va:178)


      • #4
        Mmm, either this exception is completely misleading, or it's not related to the problem you describe.

        The exception you posted is thrown when no ongong flow execution can be found with a specified id (just as the message describes). So for that to happen, SWF first needs to have created a flow execution and assigned a unique id to it. It then stored the flow execution somewhere (by default in the HTTP session) and returns the id to the client. Finally, the client uses the id to tell SWF to continue with the identified flow execution on a next request. It is at that point that SWF cannot find the requested identified flow execution and throws the exception you see.

        Are you using the default HttpSessionFlowExecutionStorage? If that is the case, maybe there are limits that WebLogic puts on the size of a HTTP session or the size of objects inside the HTTP session? I guess you can check the WebLogic docs. Also make sure the second request (the one with the exception) is recognized by WebLogic as being in the same HTTP session: either using a cookie or via URL rewriting.



        • #5

          Well, just to confuse things even more, the flow is now working perfectly.

          We didn't change anything. We had to reboot the server where Weblogic was running because of a hardware change, and after the reboot it worked flawlessly. Its working now.

          About the exception, that is the only thing we got. It happened *before* the flow ID was created, though. The first page of our flow was a simple html page that didn't do anything, followed by a page where the flow was created, and before entering this page SWF would fail.

          Well, I'll post more information if I can, but this is indeed strange.