|
EJB Interview Questions and Answers
What are Local Interfaces?
Describe.
EJB was originally designed around remote invocation using the Java Remote
Method Invocation (RMI) mechanism, and later extended to support to standard
CORBA transport for these calls using RMI/IIOP. This design allowed for maximum
flexibility in developing applications without consideration for the deployment
scenario, and was a strong feature in support of a goal of component reuse in
J2EE. Many developers are using EJBs locally, that is, some or all of their EJB
calls are between beans in a single container. With this feedback in mind, the
EJB 2.0 expert group has created a local interface mechanism. The local
interface may be defined for a bean during development, to allow streamlined
calls to the bean if a caller is in the same container. This does not involve
the overhead involved with RMI like marshalling etc. This facility will thus
improve the performance of applications in which co-location is planned. Local
interfaces also provide the foundation for container-managed relationships among
entity beans with container-managed persistence.
What are transaction
isolation levels in EJB?
1. Transaction_read_uncommitted- Allows a method to read uncommitted data
from a DB(fast but not wise).
2. Transaction_read_committed- Guarantees that the data you are getting has
been committed.
3. Transaction_repeatable_read - Guarantees that all reads of the database
will be the same during the transaction (good for read and update
operations).
4. Transaction_serializable- All the transactions for resource are performed
serial.
Can Entity Beans have no
create() methods?
Yes. In some cases the data is inserted NOT using Java application, so you
may only need to retrieve the information, perform its processing, but not
create your own information of this kind.
What is software
architecture of EJB?
Session and Entity EJBs consist of 4 and 5 parts respetively:
1. A remote interface (a client interacts with it),
2. A home interface (used for creating objects and for declaring business
methods),
3. A bean object (an object, which actually performs business logic and
EJB-specific operations).
4. A deployment descriptor (an XML file containing all information required
for maintaining the EJB) or a set of deployment descriptors (if you are
using some container-specific features).
5.A Primary Key class - is only Entity bean specific.
What are the callback
methods in Entity beans?
The bean class defines create methods that match methods in the home
interface and business methods that match methods in the remote interface.
The bean class also implements a set of callback methods that allow the
container to notify the bean of events in its life cycle. The callback
methods are defined in the javax.ejb.EntityBean interface that is
implemented by all entity beans.The EntityBean interface has the following
definition. Notice that the bean class implements these methods.
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();
}
The setEntityContext() method 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.
The unsetEntityContext() method is 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.
The ejbLoad() and ejbStore() methods in CMP entities are 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.
The ejbPassivate() and ejbActivate() methods are 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).
Page Numbers :
1
2
3
4
5
6
7
8
9
10
Have a Question ?
post your questions here. It
will be answered as soon as possible.
Check
Java Interview
Questions for more Java Interview Questions with answers
Check
Structs Interview
Questions for more Structs Interview Questions with answers
|