It may use the javax.jts.UserTransaction interface to demarcate transaction boundaries. The bean is always invoked in the scope of the client's transaction. If the client does not have one, a javax.transaction.TransactionRequiredException exception is raised. If the client is associated with a transaction context, the bean is invoked in the same context. Otherwise, the container starts a new transaction before invoking methods on the bean and commits the transaction before returning from them.
Enterprise bean requires a new transaction be created for each method call.
Caller's transaction will be suspended before calling the enterprise bean. The bean is invoked without transactional scope. The caller's transaction is simply passed on by the EJB Container. If the caller does not have a transaction context, the bean methods are invoked without a transaction context. Transaction Attributes that Can Be Specified Because the enterprise bean is container managed, we specify the fields that are container managed so the tools can generate appropriate JDBC code.