org.apache.openejb.core.transaction
Class TxRequiresNew

java.lang.Object
  extended by org.apache.openejb.core.transaction.TransactionPolicy
      extended by 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.


Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.openejb.core.transaction.TransactionPolicy
TransactionPolicy.Type
 
Field Summary
 
Fields inherited from class org.apache.openejb.core.transaction.TransactionPolicy
container, logger, txLogger
 
Constructor Summary
TxRequiresNew(TransactionContainer container)
           
 
Method Summary
 void afterInvoke(Object instance, TransactionContext context)
           
 void beforeInvoke(Object instance, TransactionContext context)
           
 void handleApplicationException(Throwable appException, boolean rollback, TransactionContext context)
           
 void handleSystemException(Throwable sysException, Object instance, TransactionContext context)
           
 
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
 

Constructor Detail

TxRequiresNew

public TxRequiresNew(TransactionContainer container)
Method Detail

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.