I was an Oracle guy before, I have worked 8 years as Oracle DBA and data warehouse architect. Now I try to reinvent myself as Java Developer. Before I did all my work with PL/SQL, Oracle Forms. Until one year ago, I have never programmed any thing with Java, not much with Object Oriented language. Actucally I hated object-oriented design and J2EE, because I liked Oracle so much. I hold a master degree in theoretic computer science. I start study Java systematically 1 year ago, now I have SCJP, SCWCD, and today SCBCD. For SCBCD I used, 1) Head First EJB 2) Spec 3) Java Doc 4) I used Eclipse, Jboss 3.2.1 as practice setup, I made altogether no more than 10 beans. Session bean, Message driver bean, CMP entity bean, and mixed them in transaction. I also played, use Stateless session bean facade, over several DAO and make it a transaction. 5) Here is a very good artical about how transaction management is implemented in EJB, it is very important for deep understanding of EJB transaction. This part of knowledge is missing from Head First EJB book, and Spec. http://www-106.ibm.com/developerworks/java/library/j-jtp0410/?loc=j My feeling is with the book Head First EJB it is enough to pass the certification, but it does not really mean you can work with EJB. It takes me more than 1 month work, to make those beans work in Jboss, and setup my comfortable working environment in Eclipse with Ant build, using CVS as source control. My suggestion is to avaid Weblogic, Webspere as study server, they are too heavy and too slow to redeploy, Tomcat and Jboss is really nice. With Tomcat I can redeploy a Web application in 1 second. I made every thing strictly according to Spec, and I drop the war in Weblogic, it just runs.