3 Replies Latest reply on Apr 24, 2012 2:53 AM by pschebezin

    reload of portlet definition from database causes performance problems

    pschebezin

      We developed a portal application with a couple of portlets (about 30). During runtime we have a performance problem because the portal server loads something and so the response time increases up to 20 seconds, what ist not acceptable for the users. We found out, that a reload of portlet configurations from database slows down the system all 5 to 10 minutes. We didn't found out, what to configure to make this reload faster or not so often.

       

      So my question is: what to configure in GateIn 3.1 to speed up the reload or decrease the reload frequency.

       

      We use Windows and MS SQL Server 2008 R2 as jcr and idm store.

        • 1. Re: reload of portlet definition from database causes performance problems
          theute

          What do you mean by  "reload of portlet configurations" ?

          • 2. Re: reload of portlet definition from database causes performance problems
            pschebezin

            Hallo Thomas

             

            Thank your your quick response.

             

            We started the SQL Server Profiler to see, what activities are done and so we detected, that a lot of statements in the jdbcjcr-database are executed. While executing these statements the portal server gives no response to the users. This behavior is to be seen every 5 to 10 minutes and takes up to 20 seconds (until the user gets response from server). I only guess, but I think after getting information from jdbcjcr-database the portal- or portlets- configuration is newly built up and cached. Between the "reloads of portlet configuration" there are no performance problems.

             

            Regards

             

            Falk

            • 3. Re: reload of portlet definition from database causes performance problems
              pschebezin

              I found out, what to do...

               

              The problem is the jdbc driver of MS SQL Server. It has as default parameter "sendStringParametersAsUnicode=true". This causes, that no index can be used. Always there is a full table scan. So in a large configurations the are horrible caching response times.

               

              We set this parameter to false for jcr and idm ( e.g. gatein.jcr.datasource.url=jdbc:sqlserver://databaseservername;database=jdbcjcr_${name};sendStringParametersAsUnicode=false). The starting time of gatein went down from 2 mintes to 1 minute. And now it is possible to show the whole system to the users.