On Nov 12, 2009, at 5:09 AM, Jean-Louis MONTEIRO wrote:


Stateful uses some more complex mechanisms. So i imagine there is an
overhead.
I never did any benchmarks using stateful with 5000 virtual users. May be
David can give us some hints?

There's not too much overhead with the stateful bean itself, but there can be an unlimited amount of overhead in the data held by the stateful bean's fields. So how many you can have at one time is limited by what objects the stateful beans are referencing, the size of those objects, and the amount of memory.

Also as a general Stateful bean note. Make sure you have an @Remove method and use it aggressively to discard your Stateful bean when you are done with it.


-David



is_maximum wrote:

Thanks, do you know if there is any overhead using stateful SBs? And does
this degrade the performance?
There are many such services and in real word our application may serve
more than 5000 users.



Jean-Louis MONTEIRO wrote:

Hi,

In my opinion you are not guaranty to get the same instance of a
stateless session bean between invocation (a stateful is better for
that).
In OpenEJB the bean instance is retrieved from the pool at the beginning of the invocation and returned to the pool at the end of the invocation.

Jean-Louis


is_maximum wrote:

Hello

We have a stateless SB with three method: preProcess, process and
postProcess
Normally when I use this EJB in another SB I call these methods as
follows:

public class AnotherEJB {

@EJB
private SessionBean sessionBean;

  public void someMethod() {
   sessionBean.preProcess();
   sessionBean.process();
   sessionBean.postProcess();
 }

}
this works fine and it seems the state of that bean is kept the same.
My question is if a delay occurs between these three methods, will
container assign this stateless to another thread to serve incoming
request and after this delay say process() method is called it might be another session bean instance? To clarify my question look at following
code:

public void someMethod() {

   sessionBean.preProcess();

   //calling another method which takes too long to complete, and
during this method container
   // is receiving another request in which sessionBean is invoked
   doSomethingMassive();

sessionBean.process(); //is this the same instance of sessionBean
that already invoked preProcees() method above?

   perhapsDoSomethingElse(); //another method

   sessionBean.postProcess();

}


can anyone please help me on this?

}







--
View this message in context: 
http://old.nabble.com/Question-regarding-Stateless-session-beans-tp26315274p26318347.html
Sent from the OpenEJB User mailing list archive at Nabble.com.



Reply via email to