Application Server 6.x supports EJB 1.1, and the Application Server supports EJB 2.0. Therefore, both can support:
Stateful or stateless session beans
Entity beans with bean-managed persistence (BMP), or container-managed persistence (CMP)
EJB 2.0, however, introduces a new type of enterprise bean, called a message-driven bean (MDB).
J2EE 1.4 specification dictates that the different components of an EJB must be grouped together in a JAR file with the following structure:
META-INF/ directory with an XML deployment descriptor named ejb-jar.xml
The .class files corresponding to the home interface, remote interface, the implementation class, and the auxiliary classes of the bean with their package
Application Server 6.x use this archive structure. However, the EJB 1.1 specification leaves each EJB container vendor to implement certain aspects as they see fit:
Database persistence of CMP EJBs (particularly the configuration of mapping between the bean’s CMP fields and columns in a database table).
Implementation of the custom finder method logic for CMP beans.
Application Server 6.x andApplication Server 8.1do not handle migrations in the same way, which means that some XML files must be modified:
The <!DOCTYPE definition must be modified to point to the latest DTD url (in the case of J2EE standard DDs, like ejb-jar.xml).
Replace the ias-ejb-jar.xml file with the modified version of this file (for example, file sun-ejb-jar.xml, which is created manually according to the DTDs). For more information, see http://wwws.sun.com/software/dtd/appserver/sun-ejb-jar_2_1-1.dtd
Replace all the <ejb-name>-ias-cmp.xml files with one sun-cmp-mappings.xml file, which is created manually. For more information, see http://wwws.sun.com/software/dtd/appserver/sun-cmp-mapping_1_2.dtd
Optionally, for CMP entity beans, use the capture-schema utility in the Application Server’s bin directory to generate the dbschema. Then place it above the META-INF directory for the entity beans.
As mentioned in Chapter 4, Understanding Migration, while Application Server 6.x supports the EJB 1.1 specification, Application Server also supports the EJB 2.0 specification. The EJB 2.0 specification introduces the following new features and functions to the architecture:
Message Driven Beans (MDBs)
Improvements in Container-Managed Persistence (CMP)
Container-managed relationships for entity beans with CMP
EJB Query Language (EJB QL)
Although the EJB 1.1 specification continues to be supported in the Application Server, the use of the EJB 2.0 architecture is recommended to leverage its enhanced capabilities.
For detailed information on migrating from EJB 1.1 to EJB 2.0, please refer to Chapter 5, Migrating from EJB 1.1 to EJB 2.0
Migrating EJBs from Application Server 6.x to Application Server 8.1 is done without making any changes to the EJB code. However, the following DTD changes are required.
The <!DOCTYPE> definition must be modified to point to the latest DTDs with J2EE standard DDs, such as ejb-jar.xml.
Replace ias-ejb-jar.xml file with the modified version of this file, named sun-ejb-jar.xml,created manually according to the DDs. For more details, see http://wwws.sun.com/software/dtd/appserver/sun-ejb-jar_2_1-1.dtd
In the sun-ejb-jar.xml file, the JNDI name for all the EJBs must be added before ”ejb/’ in all the JNDI names. This is required because, in Application Server 6.5, the JNDI name of the EJB can only be ejb/<ejb-name> where <ejb-name> is the name of the EJB as declared inside the ejb-jar.xml file.
In the Application Server, a new tag has been introduced in the sun-ejb-jar.xml. This is where the JNDI name of the EJB is declared.
To avoid changing JNDI names throughout the application, declare the JNDI name of the EJB as ejb/<ejb-name> inside the <jndi-name> tag.
The <!DOCTYPE> definition must be modified to point to the latest DTDs containing J2EE standard DDs, such as ejb-jar.xml.
Update the <cmp-version> tag with the value 1.1, for all CMPs in the ejb-jar.xml file.
Replace all the <ejb-name>-ias-cmp.xml files with the manually created sun-cmp-mappings.xml file. For more information, see http://wwws.sun.com/software/dtd/appserver/sun-cmp-mapping_1_2.dtd
Generate dbschema by using the capture-schema utility in the Application Server installation’s bin directory and place it above META-INF folder for Entity beans.
Replace the ias-ejb-jar.xml with the sun-ejb.jar.xml in Application Server.
In Application Server 6.5, the finder's SQL was directly embedded into the <ejb-name>-ias-cmp.xml. In Application Server, mathematical expressions are used to declare the <query-filter> for the various finder methods.
Application Server provides seamless Message Driven Support through the tight integration of Sun Java System Message Queue with the Application Server, providing a native, built-in JMS Service.
This installation provides Application Server with a JMS messaging system that supports any number of Application Server instances. Each server instance, by default, has an associated built-in JMS Service that supports all JMS clients running in the instance.
Both container-managed and bean-managed transactions, as defined in the Enterprise JavaBeans Specification, v2.0, are supported.
Message Driven Bean support in iPlanet Application Server was restricted to developers, and used many of the older proprietary APIs. Messaging services were provided by iPlanet Message Queue for Java 2.0. An LDAP directory was also required under iPlanet Application Server to configure the Queue Connection Factory object.
The QueueConnectionFactory, and other elements required to configure Message Driven Beans in Application Server are now specified in the ejb-jar.xml file.
For more information on the changes to deployment descriptors, see Migrating Deployment Descriptors For information on Message Driven Beans see Using Message-Driven Beans in Sun Java System Application Server Platform Edition 8.1 2005Q2 Update 2 Developer’s Guide.