Friday, June 25, 2010

EJB CONTINUES ... 5

QUESTION: What is a Server Group?
ANSWER: A server group is a template of an Application Server(and its contents) i.e, it is a logical representation of the application server. It has the same structure and attributes as the real Application Server, but it is not associated with any node, and does not correspond to any real server process running on any node.

QUESTION: What is a Clone?
ANSWER: The copies of a server group are called Clones. But unlike a Server Group Clones are associated with a node and are real server process running in that node.

QUESTION: What is Ripple Effect?
ANSWER: The process of propagating the changes in the properties of a server group during runtime to all the associated clones is called Ripple Effect.

QUESTION: What level of Load Balancing is possible with EJBs?
ANSWER: The workload management service provides load balancing for the following types of enterprise beans
1. Homes of entity or session beans
2. Instances of entity beans
3. Instances of stateless session beans

QUESTION: What is the difference between session and entity beans? When should I use one or the other?
ANSWER: An entity bean represents persistent global data from the database; a session bean represents transient user-specific data that will die when the user disconnects (ends his session). Generally, the session beans implement business methods (e.g. Bank.transferFunds) that call entity beans (e.g. Account.deposit, Account.withdraw)

QUESTION: Is there any default cache management system with Entity beans ? In other words whether a cache of the data in database will be maintained in EJB ?
ANSWER: Caching data from a database inside the Application Server are what Entity EJB's are used for.The ejbLoad() and ejbStore() methods are used to synchronize the Entity Bean state with the persistent storage(database). Transactions also play an important role in this scenario. If data is removed from the database, via an external application - your Entity Bean can still be "alive" the EJB container. When the transaction commits, ejbStore() is called and the row will not be found, and the transcation rolled back.

QUESTION: Why is ejbFindByPrimaryKey mandatory?
ANSWER: An Entity Bean represents persistent data that is stored outside of the EJB Container/Server. The ejbFindByPrimaryKey is a method used to locate and load an Entity Bean into the container, similar to a SELECT statement in SQL. By making this method mandatory, the client programmer can be assured that if they have the primary key of the Entity Bean, then they can retrieve the bean without having to create a new bean each time - which would mean creating duplications of persistent data and break the integrity of EJB.

QUESTION: Why do we have a remove method in both EJBHome and EJBObject?
ANSWER: With the EJBHome version of the remove, you are able to delete an entity bean without first instantiating it (you can provide a PrimaryKey object as a parameter to the remove method). The home version only works for entity beans. On the other hand, the Remote interface version works on an entity bean that you have already instantiated. In addition, the remote version also works on session beans (stateless and statefull) to inform the container of your loss of interest in this bean.

QUESTION: How can I call one EJB from inside of another EJB?
ANSWER: EJBs can be clients of other EJBs. It just works. Use JNDI to locate the Home Interface of the other bean, then acquire an instance reference, and so forth.
QUESTION: What is the difference between a Server, a Container, and a Connector?
ANSWER: An EJB server is an application, usually a product such as BEA WebLogic, that provides (or should provide) for concurrent client connections and manages system resources such as threads, processes, memory, database connections, network connections, etc.
An EJB container runs inside (or within) an EJB server, and provides deployed EJB beans with transaction and security management, etc. The EJB container insulates an EJB bean from the specifics of an underlying EJB server by providing a simple, standard API between the EJB bean and its container.
A Connector provides the ability for any Enterprise Information System (EIS) to plug into any EJB server which supports the Connector architecture. See http://java.sun.com/j2ee/connector/ for more indepth information on Connectors.