org.apache.openejb.core.transaction
Class TxSupports

java.lang.Object
  extended by org.apache.openejb.core.transaction.JtaTransactionPolicy
      extended by org.apache.openejb.core.transaction.TxSupports
All Implemented Interfaces:
TransactionPolicy

public class TxSupports
extends JtaTransactionPolicy

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.


Nested Class Summary
 
Nested classes/interfaces inherited from interface org.apache.openejb.core.transaction.TransactionPolicy
TransactionPolicy.TransactionSynchronization
 
Field Summary
 
Fields inherited from class org.apache.openejb.core.transaction.JtaTransactionPolicy
logger, transactionManager, transactionType, txLogger
 
Constructor Summary
TxSupports(TransactionManager transactionManager)
           
 
Method Summary
 void commit()
          Commits or rolls back this TransactionPolicy.
 Transaction getCurrentTransaction()
           
 boolean isClientTransaction()
          Is this policy running in an inhreited transaction? Some TransactionTypes, such as Required or Supported, use the caller's transaction instead of starting a new transaction.
 boolean isNewTransaction()
          Is this a new transaction and not an inhreited transaction or no transaction? Some TransactionTypes, such as Required or Supported, use the caller's transaction instead of starting a new transaction.
 
Methods inherited from class org.apache.openejb.core.transaction.JtaTransactionPolicy
beginTransaction, completeTransaction, enlistResource, fireNonTransactionalCompletion, getResource, getTransaction, getTransactionType, isRollbackOnly, isTransactionActive, putResource, registerSynchronization, removeResource, resumeTransaction, rollbackTransaction, setRollbackOnly, setRollbackOnly, suspendTransaction, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

TxSupports

public TxSupports(TransactionManager transactionManager)
           throws SystemException
Throws:
SystemException
Method Detail

isNewTransaction

public boolean isNewTransaction()
Description copied from interface: TransactionPolicy
Is this a new transaction and not an inhreited transaction or no transaction? Some TransactionTypes, such as Required or Supported, use the caller's transaction instead of starting a new transaction. If there is no active transaction (e.g., TransactionType is NotSupported), this method will

Returns:
true if this not an inherited transaction

isClientTransaction

public boolean isClientTransaction()
Description copied from interface: TransactionPolicy
Is this policy running in an inhreited transaction? Some TransactionTypes, such as Required or Supported, use the caller's transaction instead of starting a new transaction. If there is no active transaction (e.g., TransactionType is NotSupported), this method will return false.

Returns:
true if this is an inherited transaction

getCurrentTransaction

public Transaction getCurrentTransaction()
Specified by:
getCurrentTransaction in class JtaTransactionPolicy

commit

public void commit()
Description copied from interface: TransactionPolicy
Commits or rolls back this TransactionPolicy. If there the actual transaction is completed or there is no actual transaction, the registered TransactionSynchronization are called. Otherwise, the registered TransactionSynchronization are called when the actual transaction is completed.



Copyright © 1999-2013 The Apache OpenEJB development community. All Rights Reserved.