One of the advanced value-added features that Enterprise JavaBeans provides over regular remote objects is transaction management. The EJB container can broker transaction contexts on behalf of your EJBs, making sure to “do the right thing” in terms of handling transaction defers, commits, or rollbacks. This section introduces some basic transaction-management concepts, then goes into specifics about transaction management for EJBs. The information in this section is especially important if you need to correctly manage client-defined transactions with requests that your bean may make of transactional resources, like databases or messaging systems.
Transactions break up a series of interactions into units of work that can be either committed if they are successfully executed or rolled back at any time before the transaction is committed. If a transaction is rolled back, all parties involved in the transaction are responsible for restoring their state to its pretransaction condition. Transaction support is especially important in a distributed environment, since agents may lose network contact with each other or one agent may die while engaged in a series of interactions with another agent.
The EJB container is the principal player in the area of transaction management, since it is responsible for either generating transactions around client interactions with the bean, or detecting client-requested transactions and then notifying the EJB objects about transaction ...