Book Image

EJB 3 Developer Guide

By : Michael Sikora
Book Image

EJB 3 Developer Guide

By: Michael Sikora

Overview of this book

Table of Contents (18 chapters)
EJB 3 Developer Guide
Credits
About the Author
About the Reviewers
Preface
Annotations and Their Corresponding Packages

UserTransaction Interface


The default behavior is for EJBs to use container managed transaction (CMT) demarcation. However it is possible for an EJB to use bean managed transaction (BMT) demarcation. With BMT the bean programmatically specifies transaction start and commit points. The Java Transaction API (JTA) is provided for this purpose. Specifically the JTA is implemented by the javax.transaction.UserTransaction interface. Although BMT gives the application control over the transaction demarcation, this does mean more complex code and risk of programming errors. For this reason use of BMT in the EJB-tier is not recommended.

Suppose we want to demarcate transactions from the web-tier rather than from the EJB-tier. As the transaction is initiated outside an EJB container we cannot use CMT. In this case we would use JTA to programmatically demarcate any transactions.

As an example, suppose we have a servlet which adds a customer to the database. The user is prompted by an html form for the...