org.apache.openejb.core.transaction
Class TxRequiresNew
java.lang.Object
org.apache.openejb.core.transaction.TransactionPolicy
org.apache.openejb.core.transaction.TxRequiresNew
public class TxRequiresNew
- extends TransactionPolicy
17.6.2.4 RequiresNew
The Container must invoke an enterprise Bean method whose transaction
attribute is set to RequiresNew with a new 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.
If a client calls with a transaction context, the container suspends the
association of the transaction context with the current thread before
starting the new transaction and invoking the business method. The container
resumes the suspended transaction association after the business method and
the new transaction have been completed.
Methods inherited from class org.apache.openejb.core.transaction.TransactionPolicy |
beginTransaction, commitTransaction, discardBeanInstance, getContainer, getPolicyType, handleCallbackException, logSystemException, markTxRollbackOnly, policyToString, resumeTransaction, rollbackTransaction, suspendTransaction, throwAppExceptionToServer, throwExceptionToServer, throwTxExceptionToServer |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
TxRequiresNew
public TxRequiresNew(TransactionContainer container)
beforeInvoke
public void beforeInvoke(Object instance,
TransactionContext context)
throws SystemException,
ApplicationException
- Specified by:
beforeInvoke
in class TransactionPolicy
- Throws:
SystemException
ApplicationException
afterInvoke
public void afterInvoke(Object instance,
TransactionContext context)
throws ApplicationException,
SystemException
- Specified by:
afterInvoke
in class TransactionPolicy
- Throws:
ApplicationException
SystemException
handleApplicationException
public void handleApplicationException(Throwable appException,
boolean rollback,
TransactionContext context)
throws ApplicationException,
SystemException
- Specified by:
handleApplicationException
in class TransactionPolicy
- Throws:
ApplicationException
SystemException
handleSystemException
public void handleSystemException(Throwable sysException,
Object instance,
TransactionContext context)
throws ApplicationException,
SystemException
- Specified by:
handleSystemException
in class TransactionPolicy
- Throws:
ApplicationException
SystemException
Copyright © 1999-2011 The Apache OpenEJB development community. All Rights Reserved.