If the EJB container catches a system exception from the business
method of an enterprise bean, and the method is running within a container-managed
transaction, the container rolls back the transaction before passing the exception
on to the client. For more information about how the container handles the
exceptions thrown by the business methods for beans with container-managed
transaction demarcation, see the section Exception handling in
the
Enterprise JavaBeans 2.0 specification
. That section
specifies the container's action as a function of the condition under
which the business method executes and the exception thrown by the business
method. It also illustrates the exception that the client receives and how
the client can recover from the exception.
Standard exceptions
The standard exceptions such as TransactionRequiredException, TransactionRolledbackException, and InvalidTransactionException are defined in theHeuristic exceptions
A heuristic decision is a unilateral decision made by one or more participants in a transaction to commit or rollback updates without first obtaining the consensus outcome determined by the Transaction Service. Heuristic decisions are an issue only after the participant has been prepared and the second phase of commit processing is underway. Heuristic decisions are normally made only in unusual circumstances, such as repeated failures by the transaction manager to communicate with a resource manage during two-phase commit. If a heuristic decision is taken, there is a risk that the decision differs from the consensus outcome, resulting in a loss of data integrity.The following list provides a summary of the
heuristic exceptions. For more detail, see the
Java Transaction API (JTA) 1.0.1 Specification
.