WebLogic supports two flavors of EJB transactions:
- Container-managed transactions
Here, the EJB container manages the transaction boundaries. The standard ejb-jar.xml deployment descriptor contains transaction attributes that determine how the EJB container handles transactions across method invocations.
- Bean-managed transactions
Here, the EJB implementation is responsible for demarcating transaction boundaries. The bean provider typically uses the transaction methods on the
Connectionobject or the
UserTransactionobject to ensure all updates occur atomically.
transaction-type element in the standard
ejb-jar.xml descriptor file indicates whether
the EJB will manage its own transaction boundaries, or defer all
transaction management responsibilities to the EJB container. Both
models have their benefits and limitations, and both impose certain
restrictions on your EJB code.
Container-managed transactions simplify your EJB code because you no longer need to explicitly mark transaction boundaries. You can configure your EJBs so that WebLogic’s EJB container automatically creates a new transaction context before delegating the call to the actual EJB method, and commits the transaction just before the method exits. The EJB container rolls back the transaction if a system exception is raised or if the method indicates a rollback should occur. Alternatively, you can indicate that an EJB method must never be executed within a transaction ...