Nontransactional EJBs
Beans outside of a transaction’s scope normally provide some kind
of stateless service that does not manipulate data in a data store. While
these types of enterprise beans may be necessary as utilities during a
transaction, they do not need to meet the ACID requirements. Consider a
nontransactional stateless session bean, the QuoteEJB, which provides live stock quotes. This
EJB may respond to a request from an EJB involved in a stock purchase
transaction. The success or failure of the stock purchase as a transaction
will not impact the state or operations of the QuoteEJB, so it does not need to be part of the
transaction. Beans that are involved in transactions are subjected to the
isolated ACID property, which means that their services
cannot be shared during the life of the transaction.
Making an enterprise bean transactional can be expensive at runtime.
Declaring an EJB to be nontransactional (i.e., NotSupported) leaves it out of the transaction
scope, which may improve the performance and availability of that
service.