OK, here's the scoop on the new exam
Beta
test:
June (see the other post about the 'beta opportunity')
Final release:
August (probably late August)
Number of questions:
Not sure until beta, but probably around 65 - 70 (a little longer than the
SCJP).
Time:
We won't know until the beta, but probably a little over two hours. Time shouldn't be a problem for this exam.
Type of questions:
1) Multiple choice, like SCJP
2) Drag-and-drop! (more on that in another topic)
Will you know how many answers to choose?
For multiple choice, YES.
For drag-and-drop, it gets a little more complicated.
Resources:
Virtually everything on the exam is from the
EJB 2.0 Specification. Why 2.0 and not 2.1? Because this is meant to be a *practical* exam for developers working on EJB projects, and it will be a long time before most developers are using 2.1. The exam will be upgraded to the 2.1 specification sometime in the future, but not for a LOOONG time.
Objectives:
(Note: these are slightly different from the ones on the survey that many of you have seen. Also, these may change again, but only very, very slightly. I have typed these in from scratch, so forgive my typos
)
========================
1) EJB OVERVIEW
1.1 Identify the use, benefits, and characteristics of EJB technology, version 2.0 of the specification.
1.2 Given a list of technology specifications, identify which are requirements for an EJB 2.0 container.
1.3 Identify correct and incorrect statements or examples about EJB programming restrictions.
1.4 Match EJB roles with the corresponding description of the role's responsibilities, where the description may include deployment descriptor information.
1.5 Given a list, identify which are requirements for an ejb-jar file.
========================
2) CLIENT VIEW OF A SESSION BEAN
2.1 Identify the interface methods provided to the client in a session bean's local and remote home interfaces.
2.2 Identify correct and incorrect statements or examples about the client view of a session bean's local and remote home interfaces, including code used by a client to locate a session bean's home interface.
2.3 Identify correct and incorrect statements or examples about the client view of a session bean's local component interface.
2.4 Identify correct and incorrect statements or examples about the client view of a session bean's remote component interface.
===========================
3) SESSION BEAN CONTRACT
3.1 Identify correct and incorrect statements or examples about session beans, including conversational state, the SessionBean interface, and create methods.
3.2 Identify the use of, and the behavior of, the ejbPassivate method in a session bean, including the responsibilities of both the container and the bean provider.
3.3 Identify the interface and method for each of the following: retrieve the session bean's remote home interface, retrieve the session bean's local component interface, determine if the session bean caller has a particular role, allow the instance to mark the current transaction as a rollback, retrieve the UserTransaction interface, prepare the bean instance for re-use following passivation, release resources prior to removal, indentify the invoker of the bean instance component interface, and be notified that a new transaction has begun and completed.
3.4 Match correct descriptions about purpose and function with which session bean type they apply to: stateless, stateful, both.
3.5 Given a list of responsibilities related to session beans, identify those which are the responsibility of the session bean provider, and those which are the responsibility of the container provider.
3.6 Given a list of requirements, identify those which are the requirements for a session bean class, remote component interface, remote home interface, create methods, business methods, local component interface, remote component interface.
==========================
4) SESSION BEAN LIFECYCLE
4.1 Identify correct and incorrect statements or examples about the lifecycle of a stateful or stateless session bean.
4.2 Given a list of methods of a stateful or stateless session bean class, determine which of the following operations can be performed from each of those methods: SessionContext interface methods, UserTransaction methods, JNDI access to
java:comp/env environment naming context, resource manager access, and other bean access.
4.3 Given a list of scenarios, identify which will result in ejbRemove method not being called on a bean instance.
============================
5) CLIENT VIEW OF AN ENTITY
5.1 Identify correct and incorrect statements or examples about the client view of an entity bean's local and remote home interface, including the code used to locate an entity bean's home interface, and the home interface methods provided to the client.
5.2 Identify correct and incorrect statements or examples about the client view of an entity bean's local component interface.
5.3 Identify correct and incorrect statements or examples about the client view of an entity bean's remote component interface.
5.4 Identify the use, syntax, and behavior of the following entity bean home methods for CMP: finder, create, remove, home business methods.
==============================
6) COMPONENT CONTRACT FOR CMP
6.1 Identify correct and incorrect statements or examples about the entity bean provider's view and programming contract for CMP, including requirements for a CMP bean.
6.2 Identify correct and incorrect statements or examples about persistent relationships, remove protocols, and about the abstract schema type of a CMP bean.
6.3 Identify correct and incorrect statements or examples about the rules and semantics for relationship assignment, and relationship updating, in a CMP bean.
6.4 Match the name with a description or purpose of functionality, for each of the following DD elements:
ejb-name, abstract-schema-name, ejb-relation, ejb-relationship-role, cmr-field, cmr-field-type, and relationship-role-source.
6.5 Identify correctly-implemented DD elements for a CMP bean (including container-managed relationships).
6.6 Identify the interface(s) and methods a CMP bean must and must not implement.
===========================
7) CMP ENTITY BEAN LIFECYCLE
7.1 Identify correct and incorrect statements or examples about the lifecycle of a CMP bean.
7.2 From a list, identify the purpose, behavior, and responsibilities of the bean provider for a CMP bean, including (but not limited to) setEntityContext, unsetEntityContext, ejbCreate, ejbPostCreate, ejbActivate, ejbPassivate, ejbRemove, ejbLoad, ejbStore, ejbFind, ejbHome, and ejbSelect.
7.3 From a list, identify the responsibility of the container for a CMP bean, (including but not limited to):
setEntityContext, unsetEntityContext, ejbCreate, ejbPostCreate, ejbActivate, ejbPassivate, ejbRemove, ejbLoad, ejbStore, ejbFind, ejbHome, and ejbSelect.
=========================
8) ENTITY BEANS
8.1 From a list of behaviors, match them with the appropriate EntityContext method responsible for that behavior.
8.2 Identify correct and incorrect statements or examples about an entity bean's primary key and object identity.
===========================
9) EJB-QL
9.1 Identify correct and incorrect syntax for an EJB QL query including SELECT, FROM, and WHERE clause.
9.2 Identify correct and incorrect statements or examples about the purpose and use of EJB-QL.
9.3 Identify correct and incorrect conditional expressions, between expression, in expression, like expressions, and comparison expressions.
===========================
10) MESSAGE-DRIVEN BEAN COMPONENT CONTRACT
10.1 Identify correct and incorrect statements or examples about the client view of a message-driven bean, and the lifecycle of a message-driven bean.
10.2 Identify the interface(s) and methods a JMS MDB must implement.
10.3 Identify the use and behavior of the MessageDrivenContext interface methods.
10.4 From a list, identify the responsibility of the bean provider, and the responsibility of the container provider for a message-driven bean.
=============================
11) TRANSACTIONS
11.1 Identify correct and incorrect statements or examples about EJB transactions including BMT and CMT.
11.2 Identify correct and incorrect statements about the Application Assembler's responsibilities including the use of DD elements related to transactions, and the identification of methods of a particular bean type for which a transaction attribute must be specified.
11.3 Given a list of transaction behaviors, match them with the appropriate transaction attribute.
11.4 Given a list of responsibilities, identify those which are the container's with respect to transactions, including handling setRollbackOnly, getRollbackOnly, getUserTransaction, SessionSynchronization callbacks, for both CMT and BMT.
=======================
12) EXCEPTIONS
12.1 Identify correct and incorrect statements or examples about exception handling in EJB.
12.2 Given a list of responsibilities related to exceptions, identify those which are the bean provider's and those which are the responsibilitiy of the container provider. Be prepared to recognize responsibilities for which neither the bean or container provider are responsible.
12.3 Identify correct and incorrect statements or examples about application exceptions and system exceptions, for Session, Entity, and MessageDriven beans.
12.4 Given a particular condition, identify the following: whether an exception will be thrown, the type of exception thrown, the container's action, and the client's view.
12.5 Identify correct and incorrect statements or examples about the client view of exceptions received from an enterprise bean invocation.
======================
13) ENTERPRISE BEAN ENVIRONMENT
13.1 Identify correct and incorrect statements or examples about an enterprise bean's environment JNDI naming.
13.2 Identify correct and incorrect statements or examples about the purpose and/or use of DD elements for environment entrys, ejb references, resource manager connection factory references, including whether a given code listing is appropriate and correct with respect to a particular DD element.
13.3 Given a list of responsibilities, identify which belong to the deployer, bean provider, app assembler, container provider, sys admin, or any combination.
=======================
14) SECURITY
14.1 Identify correct and incorrect statements about the EJB support for security including security roles, security role references, and method permissions.
14.2 From a list of responsibilities, identify which belong to the app assembler, bean provider, deployer, container provider, or sys admin.
14.3 Given a code listing, determine whether it is legal and or appropriate for programmatically accessing a security context of a caller.
14.4 Given a security-related DD tag, identify correct and incorrect statements and/or code related to that tag.
=====================
Whew! That's it
In other topics, we can discuss exactly what is meant by some of those objectives. ALL are from the EJB 2.0 specification.
cheers,
Kathy