If you want a very clear introduction to EJBs, get this book.
Another part of the O'Reilly Java Series, Enterprise JavaBeans covers the subject of, er, Enterprise JavaBeans (EJBs). Richard Monson-Haefel should be no stranger to the EJB community - he frequently acts as a source of expertise on the EJB-INTEREST mailing list run by Sun.
This book starts with an overview of distributed components to establish a solution space for EJBs and to further hammer the point in, the example of an imaginary shipping company with a need for an online reservation system is introduced and developed throughout the book.
However, it's not until chapter 4 (p77) that we get to finally see an EJB in action. When he does get there, the author clearly separates out the different aspects of EJBs, giving Entity Beans and Session Beans very clear treatment, covering roles, implementation, deployment and the life-cycles of each Bean type.
The author continues with an excellently clear summation of transactions as they apply to EJBs. In fact, his explanations are the first time I've really understood the transaction modifiers for EJBs. The final chapter rounds the book off with a chapter called Design Strategies, which is a short (20 pages) section of practical issues when developing EJBs.
Overall, this book is both good and mediocre at the same time. Richard Monson-Haefel's writing and explanations are clear in the extreme, making this a delightful book to read and understand. On the other hand, if you already know the basics of how to program EJBs, this book just feels like it's telling you what you already know ... very slowly. Also, this book only covers the 1.0 EJB spec, although the changes under 1.1 should not make any of this material any less relevant.
If you want a very clear introduction to EJBs, get this book. If you already know EJBs, but want to round off the rough edges, borrow this book, or wait a while until a more practical book comes out.