org.openejb.core.transaction
Class TxSupports
java.lang.Object
org.openejb.core.transaction.TransactionPolicy
org.openejb.core.transaction.TxSupports
public class TxSupports
- extends TransactionPolicy
17.6.2.3 Supports
The Container invokes an enterprise Bean method whose transaction attribute
is set to Supports as follows.
? If the client calls with a transaction context, the Container performs
the same steps as described in the Required case.
? If the client calls without a transaction context, the Container performs
the same steps as described in the NotSupported case.
The Supports transaction attribute must be used with caution. This is
because of the different transactional semantics provided by the two
possible modes of execution. Only the enterprise beans that will
execute correctly in both modes should use the Supports transaction
attribute.
- 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 |
TxSupports
public TxSupports(TransactionContainer container)
TxSupports
public TxSupports()
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-2013 OpenEJB. All Rights Reserved.