Win a copy of Programmer's Guide to Java SE 8 Oracle Certified Associate (OCA) this week in the OCAJP forum!
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

ejbPassivate and ejbRemove for SFSB

 
Sany Bel
Ranch Hand
Posts: 51
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
What happens when a user calls remove on a passivated session bean?
1) Container treats it as any other business method and calls ejbActivate and then ejbRemove.
2) Container will kill the bean without calling ejbActivate.
I personally think 1 is correct. But I wanted to confirm that.
 
Roger Chung-Wee
Ranch Hand
Posts: 1683
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
No, 2 is correct because it is pointless for the container to activate a stateful session bean and then destroy it. It will go straight from the "passivated" state to the "does not exist" state without ever getting an ejbRemove() call. As ejbRemove() may never be called, it makes sense to replicate your code (cleanup, finalization, etc) in both ejbPassivate() and ejbRemove().
It's also worth bearing in mind that ejbPassivate() may also never be called. This means that none of your cleanup code may ever get called, so you will need do your cleanup at intervals in case ejbPassivate() or ejbRemove() were never called.
 
Seema Manivannan
Ranch Hand
Posts: 128
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
This has been answered in detail by Kathy in the following post
http://www.coderanch.com/t/158446/java-EJB-SCBCD/certification/Some-questions
Thanks
 
Santosh Ramachandrula
Ranch Hand
Posts: 252
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
This has been answered in detail by Kathy in the following post
http://www.coderanch.com/t/158446/java-EJB-SCBCD/certification/Some-questions

I read the article posted by Kathy Siera as directed by Seema but I don't think that there is a direct answer to what Sany Bel has asked.
With respect to Sany's question is the answer option number 1 or 2? and also why?
Thanks,
Santosh
 
Seema Manivannan
Ranch Hand
Posts: 128
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
hello,
Option 1 is correct.
Kathy says in the given post:
for stateFUL session beans, the container will treat a remove() method as a business method, and "wake up" the bean to invoke the ejbRemove() method (so ejbActivate() will be called first).
Thanks
[ April 09, 2004: Message edited by: seema manivannan ]
 
Sany Bel
Ranch Hand
Posts: 51
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks a lot Seema!!
 
Santosh Ramachandrula
Ranch Hand
Posts: 252
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks Seema!!
I got it..

Santosh
 
It is sorta covered in the JavaRanch Style Guide.
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic