Q: JBoss is Very Scalable ;-)
ok seriously now, the theoretical limit of the JBoss container can be measured by anyone. If you run optimized stacks and no load on DB then THE THROUGHPUT OF THE JBOSS CONTAINER IS ONE INVOCATION PER 0.05ms .
Which translates roughly to 20,000 invocations per second. The container by itself runs at a theoretical 20,000 inv/seconds.
Of course in real life you will store stuff in database and invoke stuff through the network. Depending on how much load you put there you will see anywhere from 100 invocations to 1500 invocations per second. This of course is a measure of the speed of serialization and the container doesn't really affect that number. IF YOU HAVE NUMBERS BELOW THAT, it might be absolutely normal, meaning you are running large queries on your databases, or you are passing large set of data back and forth. In some occasions not running optimized stacks between the web layer and ejb layer means you are serializing and therefore paying a hefty price, non-serializing usually means a packaging problem (classes missing, or duplicate classes) and can be hard to diagnose. JBoss 3.0 is more explicit when packaging is off as well as more evolved as far as running optimized stacks go. If you are really interested in why this happens, it is due to how classloader works, come to one of the JBoss Group training (http://www.jboss.org/jbossgroup/training.jsp) to find out in gorry details what is going on.
I wanted to be able to dynamically deploy a new bean to a new
server on the fly. That is, if I notice the CPU load is high because
of some of my beans are serving too many requests, I want to
be able to programatically deploy such bean into a different server
then be able to start it to share the load.
How do you do this?