org.openejb.core.transaction
Class TxRequired
java.lang.Object
org.openejb.core.transaction.TransactionPolicy
org.openejb.core.transaction.TxRequired
public class TxRequired
- extends TransactionPolicy
17.6.2.2 Required
The Container must invoke an enterprise Bean method whose transaction
attribute is set to Required with a valid transaction context.
If a client invokes the enterprise Bean's method while the client is
associated with a transaction context, the container invokes the enterprise
Bean's method in the client's transaction context.
If the client invokes the enterprise Bean's method while the client is not
associated with a transaction context, the container automatically starts a
new transaction before delegating a method call to the enterprise Bean
business method. The Container automatically enlists all the resource
managers accessed by the business method with the transaction. If the
business method invokes other enterprise beans, the Container passes the
transaction context with the invocation. The Container attempts to commit
the transaction when the business method has completed. The container
performs the commit protocol before the method result is sent to the client.
- Version:
- $Revision: 1912 $ $Date: 2005-06-16 15:29:56 -0700 (Thu, 16 Jun 2005) $
- Author:
- David Blevins
Fields inherited from class org.openejb.core.transaction.TransactionPolicy |
BeanManaged, container, logger, Mandatory, Never, NotSupported, policyType, Required, RequiresNew, Supports, txLogger |
Methods inherited from class org.openejb.core.transaction.TransactionPolicy |
beginTransaction, commitTransaction, discardBeanInstance, getContainer, getTxMngr, handleCallbackException, logSystemException, markTxRollbackOnly, resumeTransaction, rollbackTransaction, suspendTransaction, throwAppExceptionToServer, throwExceptionToServer, throwTxExceptionToServer |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
TxRequired
public TxRequired(TransactionContainer container)
TxRequired
public TxRequired()
policyToString
public java.lang.String policyToString()
- Overrides:
policyToString
in class TransactionPolicy
beforeInvoke
public void beforeInvoke(javax.ejb.EnterpriseBean instance,
TransactionContext context)
throws SystemException,
ApplicationException
- Specified by:
beforeInvoke
in class TransactionPolicy
- Throws:
SystemException
ApplicationException
afterInvoke
public void afterInvoke(javax.ejb.EnterpriseBean instance,
TransactionContext context)
throws ApplicationException,
SystemException
- Specified by:
afterInvoke
in class TransactionPolicy
- Throws:
ApplicationException
SystemException
handleApplicationException
public void handleApplicationException(java.lang.Throwable appException,
TransactionContext context)
throws ApplicationException
- Container's action
Re-throw AppException
Client's view
Client receives AppException. Can attempt to continue computation in the
transaction, and eventually commit the transaction (the commit would fail
if the instance called setRollbackOnly()).
- Specified by:
handleApplicationException
in class TransactionPolicy
- Throws:
ApplicationException
handleSystemException
public void handleSystemException(java.lang.Throwable sysException,
javax.ejb.EnterpriseBean instance,
TransactionContext context)
throws ApplicationException,
SystemException
- A system exception is any exception that is not an Application Exception.
Container's action
-
Log the exception or error so that the System Administrator is alerted of
the problem.
-
Mark the transaction for rollback.
-
Discard instance. The Container must not invoke any business methods or
container callbacks on the instance.
-
Throw javax.transaction.TransactionRolledbackException to remote client;
throw javax.ejb.TransactionRolledbackLocalException to local client.
Client's view
Receives javax.transaction.TransactionRolledbackException or
javax.ejb.TransactionRolledbackLocalException.
Continuing transaction is fruitless.
- Specified by:
handleSystemException
in class TransactionPolicy
- Throws:
ApplicationException
SystemException
Copyright © 1999-2011 OpenEJB. All Rights Reserved.