ICEfaces-EE
  1. ICEfaces-EE
  2. IPCK-486

Server Side State Saving per Window

    Details

    • Type: Bug Bug
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: EE-3.3.0.GA_P01
    • Fix Version/s: None
    • Component/s: Core Extensions
    • Labels:
      None
    • Environment:
      websphere 8

      Description

      We are developing an order entry system using ICEFaces (v3.3.0-P01) and Mojarra JSF2 (2.1.26) and have the following system requirements


      1) The application must support running multiple browser windows or tabs. A sales rep may be multi-tasking between desk work and customer calls, conducting similar application workflows in different browser windows/tabs.


      2) Support 150 orders processing workflows being executed concurrently. Each workflow consists of a user creating 4 line order. Test scenario based on average number of lines per order.


      Currently, we are using view scope beans and server side state saving (partial state saving set to true). We have realized that they will not support multiple browsers, each running the application. The number of views in session eventually rolls over because its map is stored in a single http session attribute (com.sun.faces.renderkit.ServerSideStateHelper.LogicalViewMap) shared by all child browser windows. Eventually when the user switches back to a previous browser window or tab, its view state may no longer exist in the map because the number of navigation actions in the first browser window/tab has rolled it out. Also, the memory consumption from increasing the number of views in session kills our heap.


      Our UI is somewhat complex, but necessary from a business requirements standpoint in order to complete the order processing workflow.


      Our conclusion is that we need a state manager that addresses view state per browser window (via ICE window scope) and only holds a single copy of the view state per browser window. This view state should leverage any compression options in order to reduce the memory load on the servers. With this approach switching back to a previous browser window, would use the view state specific to that browser window. We currently will be using the com.sun.faces.serializeServerState to leverage server side compression of the view state (com.sun.faces.compressViewState)


      Does ICEFaces offer any custom state managers to help with performance of high volume web applications? For example, like your previous SingleCopyStateManager? We noticed from heap dump the largest objects in the session were in the view map. They included the JSF view state and the ICEFaces "old_DOM". We did enable the org.icefaces.compressDOM option to save session size as the old DOM appears to be stored in the view map


      Again, we did turn on the following context param options, however ultimately these options do not support view state per browser window to support our multiple browser window/tab requirements


      com.sun.faces.serializeServerState = true
      org.icefaces.compressDOM = true

        Activity

        Hide
        Scott Ratliff added a comment -

        Are there any updates on this issue?

        Show
        Scott Ratliff added a comment - Are there any updates on this issue?

          People

          • Assignee:
            Ken Fyten
            Reporter:
            Scott Ratliff
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated: