CONTENTS | PREV | NEXT | INDEXJ2EE BluePrints



Questions and Answers - Transaction Management

  1. Which transaction attributes should I use in which situations?
  2. How can I handle transaction isolation?
  3. Does the J2EE platform support distributed transactions?
  4. Does the J2EE platform support nested transactions?
  5. What are some tips for using bean-managed transaction demarcation?
  6. What are some tips for using container-managed transaction demarcation?
  7. Can an entity bean use bean-managed transaction demarcation?
  8. Should I put a transactional attribute on an asynchronous action such as sending an email?

1.  Which transaction attributes should I use in which situations?

The following are some of the points to be remembered when specifying transaction attributes for Enterprise JavaBeansTM-technology based components (EJBTM):


2.  How can I handle transaction isolation?

The EJB specification indicates that the API for controlling transaction isolation level is specific to the resource manager implementation, and therefore the architecture does not define and isolation level control API.

If a container uses only one bean instance per primary key, the container will synchronize access to the bean and therefore transaction isolation is unnecessary. Containers that use multiple instances per primary key depend on the underlying database for isolation.

Enterprise beans using container-managed persistence use the default isolation level of the underlying database; therefore, the isolation level cannot modified. Entity beans using bean-managed persistence may use the underlying DBMS API to change the isolation level (using, for example, Connection.setTransactionIsolation().)


3.  Does the J2EE platform support distributed transactions?

Yes, the J2EE platform allows multiple databases to participate in a transaction. These databases may be spread across multiple machines, using multiple EJB technology-enabled servers from multiple vendors.


4.  Does the J2EE platform support nested transactions?

No, the J2EE platform supports only flat transactions.


5.  What are some tips for using bean-managed transaction demarcation?


6.  What are some tips for using container-managed transaction demarcation?


7.  Can an entity bean use bean-managed transaction demarcation?

No. Entity beans always use container-managed transaction demarcation. Session beans can use either container-managed or bean-managed transaction demarcation, but not at the same time.


8.  Should I put a transactional attribute on an asynchronous action such as sending an email?

No. Simply putting a transactional attribute on a method won't help if the resource manager can't use a transactional context.


CONTENTS | PREV | NEXT | INDEX
Copyright © 2001 Sun Microsystems, Inc. All Rights Reserved.