4 Replies Latest reply on Mar 31, 2009 11:57 AM by nicog

    PROBLEM a4j:region - Huge negative impact on performance

    nicog

      Hi,

      Having in one page several a4j:include or jsp:include all well delimited with a4j:region (with renderRegionOnly when adapted).

      Most of them have JSF backing bean in request scope.

      Each time an ajax request is sent, all includes in request scope are reRender in backend (all going through PostConstruct and PreDestroy as seen in the log)

      Putting a4j:include with ajaxRendered=false and the regions with renderRegionOnly=true has NO EFFECT!!!

      This has a great impact on performance having each request taking between 7 and 15 seconds and even more than 20 seconds if include contains tabs, each tab containing dataTable.. .

      The application is almost unusable (response times) due to this issue.

      Have you identifed such problems ?
      Any workaround?

      Help greatly appreciated
      Regards,

        • 1. Re: PROBLEM a4j:region - Huge negative impact on performance
          ilya_shaikovsky

          can't confirm by just using description. provide the code.. logs, RF version info.

          • 2. Re: PROBLEM a4j:region - Huge negative impact on performance
            nicog

            I just sent you a mail with more details
            Rgds

            • 3. Re: PROBLEM a4j:region - Huge negative impact on performance
              ilya_shaikovsky
              • 4. Re: PROBLEM a4j:region - Huge negative impact on performance
                nicog

                I read all related forum topics...

                Most of proposed workarounds will not work (or work only i simple cases)
                indeed:
                - a4j:region with renderRegionOnly inside tab:
                what if a row must show a modal panel outside of the region for example (but the trick of putting all other tab to renderRegionOnly to true and active tab to renderRegionOnly to false might do it , even if it will be quite difficult to maintain, i htink, in a growing application with dynamic tabs for example)
                More this has nothing to do with tabs...all my view having an iteration component (even a view containing only a table and NO tabs) get rerendered

                - a4j:keepAlive for bean managing dataModel
                using keepAlive block list to be refreshed after contexmenu (add action) in datatable (except by adding items in list by code...)
                more what if the list is part of object (lets say parentBean.CLIENT.addresses) and not directly linked to bean of table like childBean.adresses...
                this seems tricky to me and hard to maintain

                - limitToList=true starting from 3.3.1
                I am using limitToList on all my commands and 3.3.0GA.
                In 3.3.0GA , This trick does not work.
                Hope upgrading will do it. When do you think 3.3.1 GA wil be released?

                More I am afraid that my bean will always be called from any ajaxified command. Please confirm it is not the case except in currently discussed issue (meaning ONLY iteration components causes the rerender of all beans (session or request scope by the way))

                I think there is deeper issue with iteration components...Do you think there will be a secure/strong fix to this
                What is your feeling...
                What should I try...
                Thanks for your help