Title: Basics - Transactions
One of the many benefits of EJB, is that transactions within the EJB
container are generally managed entirely automatically.  Any EJB component
will, by default, partake in that transaction.

Here are some basic rules to understand about transactions.  Keep note that
this is the default behaviour, and the system can be configured to behave
differently, depending on the needs of your system, bean, or individual
methods of your beans.

<a name="Basics-Transactions-Participants"></a>
## Participants

Various components and parts of the EJB system can be part of a
transaction. Examples are

1. Session bean
1. Message Driven Bean
1. EntityManager (a.k.a. Persistence context)

<a name="Basics-Transactions-Behaviour"></a>
## Behaviour

The basic default behaviours are
1. A transaction starts at the beginning of the first EJB method call, in a
chain of calls that are participating in the given transaction
1. A transaction ends at the end of the first EJB method, in the same chain
1. If a bean that has started a transaction, uses another bean, that bean
will automatically use the same transaction as the calling bean.

<a name="Basics-Transactions-Configuration"></a>
## Configuration

You can configure your beans in a variety of ways.  Generally speaking, a
transaction is started when a method is called, but can be configured using
@TransactionAttribute(value = TransactionAttributeType.X), where X is one
of...

1. REQUIRED - the default, which is to start a transaction if one does not exist, but to use the existing one if it has already been started.
1. REQUIRES_NEW - the transaction is created on every call, and ends when the call is completed.	Beans don't partake in transactions created by other parts of the system.
1. MANDATORY - a transaction must always exist prior to the call, and it will be used.  It is an error otherwise
1. NOT_SUPPORTED - component not included in the transaction
1. SUPPORTS - transaction will be used if it exists, but will not be created if it does not exist
1. NEVER - if a transaction exists, it is an error to call the method

@TransactionAttribute applies to both methods and entire beans.  You may
set one type of transaction behaviour (as seen above) on the bean, and a
different one on a specific method of that same bean, which overrides the
one configured for the overall bean.  For instance, maybe you want to make
an audit entry in the database that you are about to attempt a credit card
payment.  It really needs to be in it's own transaction so that it is
IMMEDIATELY committed for audit purposes, if something goes wrong with the
credit card payment.  So, perhaps you use MANDATORY on the bean, and
REQUIRES_NEW on the method for audit logging.  As soon as the method that
does the audit logging is complete, the transaction is committed, and the
credit card payment transaction continues on it's way.
