1. I think EJB
Home methods can return a component or home interface.
An ejbHome method is just like a business method on a session bean for example. You should
probably only return remote versions of component/home interfaces in the remote component interface of the entity.
2. Good question. ejbActivate and ejbPassivate do indeed run in an unspecified tx. If you see the life cycle image in the spec, its seems logical to me that the transaction is started after ejbActivate has been called. After that ejbLoad and the business method are performed in the specified tx (ejbLoad prior to the business method
3. I think that there is no passivation required ? ejbStore is called when a transaction ended. This does not necesairly mean that the bean gets passivated. The container is in control of that.
For your question 3, ejbLoad is invoked after ejbActivate but before calling the business method. ejbStore is invoked before calling ejbPassivate. See spec 176.
You can also deduct this from the life cycle view. ejbLoad and ejbStore can only be performed while the instance is in 'method ready' state. ejbActivate/passivate trigger the transition to pooled. So its logical that ejbStore/ejbLoad must be executed before/after the state transition.
[ July 30, 2005: Message edited by: Koen Serneels ]