1 Reply Latest reply on Aug 25, 2010 7:34 PM by Yasser Hawari

    Seam unexpected behavior in big application + huge cpu consuming

    Thiago Melo Newbie

      Hi guys...
      Firstly, forgive any grammar mistakes made by me because my English is terrible...


      My application is composed of 231 stateful session beans,
      488 stateless session bean components seam and 1249 (including EJBs mentioned) divided into
      4 war files, 8 ejb-jar files ,
      6 jar files (excluding files from the lib) packaged into an EAR file.
      The application is taking about 4 minutes to complete deploy in Jboss 4.2.3
      (In JBoss 5.1 takes approximately 12 minutes) and with a huge CPU consumption.
      In order to identify the problem were performed several tests, as described below:


      Test 1 - Boot application with all the annotations @Name commented
      it means to deploy the EJBs only.
      Time to deploy: 2 mins: 2secs
      Consumption cpu: http://img821.imageshack.us/img821/4986/sonly.png
      Cpu consumption per method: http://img820.imageshack.us/img820/6596/sonlycpu.png


      Test 2 - Boot application with all the annotations @Name
      it means to deploy all components of the seam.
      Time to deploy: 3mins: 41secs
      Consumption cpu: http://img713.imageshack.us/img713/2707/splusseamcomps.png
      Cpu consumption per method: http://img163.imageshack.us/img163/4697/splusseamcompscpu.png


      Test 3 - Boot application with all annotations but only
      war file inside the ear.
      The test was repeated for each file war.
      Average time to deploy: 2mins
      Consumption cpu: http://img707.imageshack.us/img707/6099/splusseamcomps1war.png
      Cpu consumption per method: http://img830.imageshack.us/img830/83/splusseamcomps1warcpu.png


      Configuring the JVM: http://img820.imageshack.us/img820/6445/jvmconfig.png


      PC configuration: Processor: Intel Core2Duo 2.7Ghz/Ram: 4gb/HD: 500gb/SO: Windows Vista Professional


      After the three tests was observed that when several war files inside the ear the seam registers
      all EJBs and the seam components contained in the ejb-jar files and jar for each of the web applications
      with time over 1min: 41secs to do. The difference is almost 100% of
      time when used only deploy a war file or only with EJB's.


      This behavior is expected of the seam?


      Not posted Jboss logs during the test by which each have around 7000 lines,
      however I can send by e-mail if you want to analyze.
      They show the seam registering all components several times.

        • 1. Re: Seam unexpected behavior in big application + huge cpu consuming
          Yasser Hawari Newbie

          i guess it is. every war will get its own copy of seam components. i had two wars in my ear. each is considered a different context and each will initialize all seam components on deploy. This deploy hurts during development (that is why i bought JRebel).


          one of the things i wanted to try is see if it is possible to enlist all seam components in an xml (like they way it is done when u develop against servers other than jboss) and not allow seam deployer to look for seam components on its own. i am not sure if it is worth it (gain could be minimal!).


          please share with us if find a way to improve on this..