| Author |
Stateful session bean doubt
|
Deepak Jain
Ranch Hand
Joined: Aug 05, 2006
Posts: 637
|
|
EJB in Action code example chapter 3 User account creation. I invoked createAccount() which is not marked with @Remove annotation, from the client code. As a result of the JNDI lookup a new instance of the bean is created and PostConstruct callback is invoked as shown below. 20:49:51,359 INFO [STDOUT] openConnection() 20:49:51,359 INFO [STDOUT] I am callback for PostConstruct events for this stateful session bean 20:49:51,359 INFO [STDOUT] I will be invoked after the bean is instantiated and DI are complete. I invoked the client code again and i was surprised to see that PostConstruct callback was invoked. Since the bean is a stateful session bean and client never invoked a buisness method with @Remove and therefore the bean instance should continue to exists in main memory since the client invocation of the buisness method was within say 2 seconds. I was expecting the buisness method createAccount() to be invoked on the same session stateful bean. 20:50:06,796 INFO [STDOUT] openConnection() 20:50:06,796 INFO [STDOUT] I am callback for PostConstruct events for this stateful session bean 20:50:06,796 INFO [STDOUT] I will be invoked after the bean is instantiated and DI are complete. I kept the client connection idle for atleast 10 minutes and PrePassivate methods were never invoked. How long does one has to wait ? And is this time configurable from JBOSS ? [My guess is , it should be]
|
SCJP, SCWCD, SCBCD
|
 |
Christophe Verré
Sheriff
Joined: Nov 24, 2005
Posts: 14685
|
|
I invoked the client code again
That's a new client, isn't it ? If the process ends, then your first client is gone. Not the same client, so new bean. What happens if you call createAccount() twice from the same method ?
|
[My Blog]
All roads lead to JavaRanch
|
 |
 |
|
|
subject: Stateful session bean doubt
|
|
|