Some questions remain: ---------------------------------
1- "Every entity object has a unique identity within its home. If two entity objects have the same home and the same primary key, they are considered identical" EJB spec 2.1 page 136. My question: Can an entity object have duplicates?
2- Is the 'entity object identity' a special object or is it another name of the EJBObject (component interface) type related to an entity instance?
3- Is that correct to say either that: - RMI-IIOP supports code dowloading for Java objects sent by value across an IIOP connection in the same way as RMI does across a JRMP connection - RMI-IIOP doesn't support dynamic dowloading of classes as it's done with CORBA in DII?
4- Is that correct to say that receive(), receiveNoWait() and onMessage() can be used by either Topic and Queue subscriber?
5- Does exit 'round robin load distribution' and 'round robin load balancing' as two different things? Or it exists only the first meaning splitting requests evenly amongst all back end servers?
5- What are the main policy purpose changes between enabling mutual authentication over SSL with 'PREFERD' or with 'RARELY' beyond the simple way they are differently configured.
6- What is the difference between 'code factoring' and 'code refactoring'?
I will not be able to answer all the 7 questions but think I could provide some inputs regarding a couple.
1. The only time we could have a duplicate entity object i.e. two objects having the same primary key within the same home would be in case of multiple clients accessing the same entity object under same transaction context EJB 2.1 Spec 17.7 "Access from multiple clients in the same transaction context". The other possibility is concurrent access under different transaction contexts, although I could not find a reference to this scenario in the spec.
2. Entity object identity refers to the state represented by entity bean. Typically a POOLED entity object is not associated to a row of database. So it does not have any unique identity of its own. Only when it moves to READY state and a database row is associated to it, its identity is established. How it is defined would be application server specific implementation.
7. No, CORBA is not a J2EE technology. Like J2EE, CORBA is a distributed technology. However, CORBA specs are language agnostic, unlike J2EE which is based on Java. J2EE has reused a considerable amount of CORBA specs like Object Transaction Services and Naming services etc. The JTS and JNDI implementations of some application servers are wrappers around the OTS and CoSNaming services of CORBA.