Tuesday, 19 April 2016

What are the callback methods in Entity beans ?


The callback methods are defined in the javax.ejb.EntityBean interface that is implemented by all entity beans.
public interface javax.ejb.EntityBean {  
   public void setEntityContext();
   public void unsetEntityContext();
   public void ejbLoad();
   public void ejbStore();
   public void ejbActivate();
   public void ejbPassivate();
   public void ejbRemove();
}


setEntityContext()

Provides the bean with an interface to the container called the EntityContext.
The EntityContext interface contains methods for obtaining information about the context under which the bean is operating at any particular moment.

The EntityContext interface is used to access security information about the caller; to determine the status of the current transaction or to force a transaction rollback; or to get a reference to the bean itself, its home, or its primary key.

The EntityContext is set only once in the life of an entity bean instance, so its reference should be put into one of the bean instance's fields if it will be needed later.


unsetEntityContext()

Used at the end of the bean's life cycle before the instance is evicted from memory to dereference the EntityContext and perform any last-minute clean-up.


ejbLoad() , ejbStore()

invoked when the entity bean's state is being synchronized with the database.

The ejbLoad() is invoked just after the container has refreshed the bean container-managed fields with its state from the database.

The ejbStore() method is invoked just before the container is about to write the bean container-managed fields to the database.
These methods are used to modify data as it's being synchronized.
This is common when the data stored in the database is different than the data used in the bean fields.


ejbPassivate() , ejbActivate()

invoked on the bean by the container just before the bean is passivated and just after the bean is activated, respectively.

Passivation in entity beans means that the bean instance is disassociated with its remote reference so that the container can evict it from memory or reuse it.
It's a resource conservation measure the container employs to reduce the number of instances in memory.

A bean might be passivated if it hasn't been used for a while or as a normal operation performed by the container to maximize reuse of resources.
Some containers will evict beans from memory, while others will reuse instances for other more active remote references.

The ejbPassivate() and ejbActivate() methods provide the bean with a notification as to when it's about to be passivated (disassociated with the remote reference) or activated (associated with a remote reference).

No comments:

Post a Comment

Note: only a member of this blog may post a comment.