1 Reply Latest reply on Jun 30, 2010 6:35 PM by Arbi Sookazian

    Best profile for JBoss or should I use tomcat

    Rob Shepherd Newbie

      I only have experience of JBoss AS with SEAM development but I've reached the limit of my patience.


      I'm using a stock download of JBoss on Java6 and I can't prevent it from using all of my resources when redeploying the pitifully small Seam 2.2.0.GA Ear.


      After just 2-3 re-deployments overall performance is noticablly worse
      After 5-6 re-deployment the CPU is at 100% and it's chomping memory.


      If I'm making tea, I find an OOM Error, If i'm not making tea - I usually just kill -9 the java process and restart the app server.


      I've tried removing the HDScanner and deploying using twiddle.sh, however JBoss just finds some other to max out on.


      (Quartz, RMI TCP Conn(that i've never used), http-8080 TCP connections, these are the usual suspects for using all my CPU)


      If I don't re-deploy the application it works fine.




      So,


      Firstly, Has anybody else experienced this?


      Other questions:


      Q1. Does anybody have a nice JBoss setup that works for development? That plays nicely with SEAM app re-deployments
      Q2. Does anybody have a good reference on what I stand to lose if I just go to tomcat.
      Q3. Will JBoss 6 be better (than bad)


        • 1. Re: Best profile for JBoss or should I use tomcat
          Arbi Sookazian Master

          What JDK and version are you using?  What version of JBoss AS?


          You're most likely experiencing PermGen issue if you're using the Sun HotSpot JVM (this is not a problem when using JRockit).  What are the VM args you're issuing to the JVM when starting JBoss (see run.bat in Windows or run.sh/run.conf in Linux)? 


          Try something like this:


          rem JVM memory allocation pool parameters. Modify as appropriate.
          set JAVA_OPTS=%JAVA_OPTS% -Xms512m -Xmx512m -XX:MaxPermSize=256m



          or see SiA book by DAllen for more info on this.  You can use jconsole (see %JDK_HOME%/bin) to monitor the permgen space usage in a dynamic graph.  This usually increases every time you hot deploy in JBoss.


          JBoss 6 is a Java EE 6 platform implementation and features the web profile among many new features like JPA2, JSF2, CDI, Bean Validation, etc.  As far as performance and backwards-compatibility, that remains to be seen/proven.