Class TransactionManagerImpl
- java.lang.Object
-
- com.sun.xml.ws.tx.at.common.TransactionManagerImpl
-
- All Implemented Interfaces:
TransactionManager,TransactionSynchronizationRegistry
public class TransactionManagerImpl extends Object implements TransactionManager, TransactionSynchronizationRegistry
Access hosting JTA 1.1 TransactionManager and TransactionSynchronizationRegistry.Dependencies: Sun Java System Application Server publishes TM at JNDI name:
- Author:
- jf39279
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidbegin()Create a new transaction and associate it with the current thread.voidcommit()Complete the transaction associated with the current thread.static TransactionManagerImplgetInstance()intgetRemainingTimeout()Returns in seconds duration till current transaction times out.ObjectgetResource(Object object)Get an object from the Map of resources being managed for the transaction bound to the current thread at the time this method is called.booleangetRollbackOnly()Get the rollbackOnly status of the transaction bound to the current thread at the time this method is called.intgetStatus()Obtain the status of the transaction associated with the current thread.TransactiongetTransaction()Get the transaction object that represents the transaction context of the calling thread.ObjectgetTransactionKey()Return an opaque object to represent the transaction bound to the current thread at the time this method is called.TransactionManagergetTransactionManager()intgetTransactionStatus()Return the status of the transaction bound to the current thread at the time this method is called.UserTransactiongetUserTransaction()booleanisTransactionManagerAvailable()voidputResource(Object object, Object object0)Add or replace an object in the Map of resources being managed for the transaction bound to the current thread at the time this method is called.voidregisterInterposedSynchronization(Synchronization synchronization)Register a Synchronization instance with special ordering semantics.voidregisterSynchronization(Synchronization sync)voidresume(Transaction transaction)Resume the transaction context association of the calling thread with the transaction represented by the supplied Transaction object.voidrollback()Roll back the transaction associated with the current thread.voidservletPostInvokeTx(Boolean suspend)PostInvoke Transaction configuration for Servlet Container.voidservletPreInvokeTx()PreInvoke Transaction configuration for Servlet Container.voidsetRollbackOnly()Modify the transaction associated with the current thread such that the only possible outcome of the transaction is to roll back the transaction.voidsetTransactionTimeout(int seconds)Modify the timeout value that is associated with transactions started by the current thread with the begin method.Transactionsuspend()Suspend the transaction currently associated with the calling thread and return a Transaction object that represents the transaction context being suspended.
-
-
-
Method Detail
-
getInstance
public static TransactionManagerImpl getInstance()
-
getTransactionManager
public TransactionManager getTransactionManager()
-
getUserTransaction
public UserTransaction getUserTransaction()
-
isTransactionManagerAvailable
public boolean isTransactionManagerAvailable()
-
begin
public void begin() throws NotSupportedException, SystemExceptionDescription copied from interface:TransactionManagerCreate a new transaction and associate it with the current thread.- Specified by:
beginin interfaceTransactionManager- Throws:
NotSupportedException- Thrown if the thread is already associated with a transaction and the Transaction Manager implementation does not support nested transactions.SystemException- Thrown if the transaction manager encounters an unexpected error condition.
-
commit
public void commit() throws RollbackException, HeuristicMixedException, HeuristicRollbackException, SecurityException, IllegalStateException, SystemExceptionDescription copied from interface:TransactionManagerComplete the transaction associated with the current thread. When this method completes, the thread is no longer associated with a transaction.- Specified by:
commitin interfaceTransactionManager- Throws:
RollbackException- Thrown to indicate that the transaction has been rolled back rather than committed.HeuristicMixedException- Thrown to indicate that a heuristic decision was made and that some relevant updates have been committed while others have been rolled back.HeuristicRollbackException- Thrown to indicate that a heuristic decision was made and that all relevant updates have been rolled back.SecurityException- Thrown to indicate that the thread is not allowed to commit the transaction.IllegalStateException- Thrown if the current thread is not associated with a transaction.SystemException- Thrown if the transaction manager encounters an unexpected error condition.
-
getStatus
public int getStatus() throws SystemExceptionDescription copied from interface:TransactionManagerObtain the status of the transaction associated with the current thread.- Specified by:
getStatusin interfaceTransactionManager- Returns:
- The transaction status. If no transaction is associated with the current thread, this method returns the Status.NoTransaction value.
- Throws:
SystemException- Thrown if the transaction manager encounters an unexpected error condition.
-
getTransaction
public Transaction getTransaction() throws SystemException
Description copied from interface:TransactionManagerGet the transaction object that represents the transaction context of the calling thread.- Specified by:
getTransactionin interfaceTransactionManager- Returns:
- the
Transactionobject representing the transaction associated with the calling thread. - Throws:
SystemException- Thrown if the transaction manager encounters an unexpected error condition.
-
resume
public void resume(Transaction transaction) throws InvalidTransactionException, IllegalStateException, SystemException
Description copied from interface:TransactionManagerResume the transaction context association of the calling thread with the transaction represented by the supplied Transaction object. When this method returns, the calling thread is associated with the transaction context specified.- Specified by:
resumein interfaceTransactionManager- Parameters:
transaction- TheTransactionobject that represents the transaction to be resumed.- Throws:
InvalidTransactionException- Thrown if the parameter transaction object contains an invalid transaction.IllegalStateException- Thrown if the thread is already associated with another transaction.SystemException- Thrown if the transaction manager encounters an unexpected error condition.
-
rollback
public void rollback() throws IllegalStateException, SecurityException, SystemExceptionDescription copied from interface:TransactionManagerRoll back the transaction associated with the current thread. When this method completes, the thread is no longer associated with a transaction.- Specified by:
rollbackin interfaceTransactionManager- Throws:
IllegalStateException- Thrown if the current thread is not associated with a transaction.SecurityException- Thrown to indicate that the thread is not allowed to roll back the transaction.SystemException- Thrown if the transaction manager encounters an unexpected error condition.
-
setRollbackOnly
public void setRollbackOnly() throws IllegalStateExceptionDescription copied from interface:TransactionManagerModify the transaction associated with the current thread such that the only possible outcome of the transaction is to roll back the transaction.- Specified by:
setRollbackOnlyin interfaceTransactionManager- Specified by:
setRollbackOnlyin interfaceTransactionSynchronizationRegistry- Throws:
IllegalStateException- Thrown if the current thread is not associated with a transaction.
-
setTransactionTimeout
public void setTransactionTimeout(int seconds) throws SystemExceptionDescription copied from interface:TransactionManagerModify the timeout value that is associated with transactions started by the current thread with the begin method.If an application has not called this method, the transaction service uses some default value for the transaction timeout.
- Specified by:
setTransactionTimeoutin interfaceTransactionManager- Parameters:
seconds- The value of the timeout in seconds. If the value is zero, the transaction service restores the default value. If the value is negative a SystemException is thrown.- Throws:
SystemException- Thrown if the transaction manager encounters an unexpected error condition.
-
suspend
public Transaction suspend() throws SystemException
Description copied from interface:TransactionManagerSuspend the transaction currently associated with the calling thread and return a Transaction object that represents the transaction context being suspended. If the calling thread is not associated with a transaction, the method returns a null object reference. When this method returns, the calling thread is not associated with a transaction.- Specified by:
suspendin interfaceTransactionManager- Returns:
- Transaction object representing the suspended transaction.
- Throws:
SystemException- Thrown if the transaction manager encounters an unexpected error condition.
-
getTransactionKey
public Object getTransactionKey()
Description copied from interface:TransactionSynchronizationRegistryReturn an opaque object to represent the transaction bound to the current thread at the time this method is called. This object overrides hashCode and equals to allow its use as the key in a hashMap for use by the caller. If there is no transaction currently active, return null.This object will return the same hashCode and compare equal to all other objects returned by calling this method from any component executing in the same transaction context in the same application server.
The toString method returns a String that might be usable by a human reader to usefully understand the transaction context. The toString result is otherwise not defined. Specifically, there is no forward or backward compatibility guarantee of the results of toString.
The object is not necessarily serializable, and has no defined behavior outside the virtual machine whence it was obtained.
- Specified by:
getTransactionKeyin interfaceTransactionSynchronizationRegistry- Returns:
- an opaque object representing the transaction bound to the current thread at the time this method is called.
-
putResource
public void putResource(Object object, Object object0)
Description copied from interface:TransactionSynchronizationRegistryAdd or replace an object in the Map of resources being managed for the transaction bound to the current thread at the time this method is called. The supplied key should be of an caller- defined class so as not to conflict with other users. The class of the key must guarantee that the hashCode and equals methods are suitable for use as keys in a map. The key and value are not examined or used by the implementation. The general contract of this method is that ofMap.put(Object, Object)for a Map that supports non-null keys and null values. For example, if there is already an value associated with the key, it is replaced by the value parameter.- Specified by:
putResourcein interfaceTransactionSynchronizationRegistry- Parameters:
object- the key for the Map entry.object0- the value for the Map entry.
-
getResource
public Object getResource(Object object)
Description copied from interface:TransactionSynchronizationRegistryGet an object from the Map of resources being managed for the transaction bound to the current thread at the time this method is called. The key should have been supplied earlier by a call to putResouce in the same transaction. If the key cannot be found in the current resource Map, null is returned. The general contract of this method is that ofMap.get(Object)for a Map that supports non-null keys and null values. For example, the returned value is null if there is no entry for the parameter key or if the value associated with the key is actually null.- Specified by:
getResourcein interfaceTransactionSynchronizationRegistry- Parameters:
object- the key for the Map entry.- Returns:
- the value associated with the key.
-
registerInterposedSynchronization
public void registerInterposedSynchronization(Synchronization synchronization)
Description copied from interface:TransactionSynchronizationRegistryRegister a Synchronization instance with special ordering semantics. Its beforeCompletion will be called after all SessionSynchronization beforeCompletion callbacks and callbacks registered directly with the Transaction, but before the 2-phase commit process starts. Similarly, the afterCompletion callback will be called after 2-phase commit completes but before any SessionSynchronization and Transaction afterCompletion callbacks.The beforeCompletion callback will be invoked in the transaction context of the transaction bound to the current thread at the time this method is called. Allowable methods include access to resources, e.g. Connectors. No access is allowed to "user components" (e.g. timer services or bean methods), as these might change the state of data being managed by the caller, and might change the state of data that has already been flushed by another caller of registerInterposedSynchronization. The general context is the component context of the caller of registerInterposedSynchronization.
The afterCompletion callback will be invoked in an undefined context. No access is permitted to "user components" as defined above. Resources can be closed but no transactional work can be performed with them.
If this method is invoked without an active transaction context, an IllegalStateException is thrown.
If this method is invoked after the two-phase commit processing has started, an IllegalStateException is thrown.
- Specified by:
registerInterposedSynchronizationin interfaceTransactionSynchronizationRegistry- Parameters:
synchronization- the Synchronization instance.
-
registerSynchronization
public void registerSynchronization(Synchronization sync)
-
getTransactionStatus
public int getTransactionStatus()
Description copied from interface:TransactionSynchronizationRegistryReturn the status of the transaction bound to the current thread at the time this method is called. This is the result of executing TransactionManager.getStatus() in the context of the transaction bound to the current thread at the time this method is called.- Specified by:
getTransactionStatusin interfaceTransactionSynchronizationRegistry- Returns:
- the status of the transaction bound to the current thread at the time this method is called.
-
getRollbackOnly
public boolean getRollbackOnly()
Description copied from interface:TransactionSynchronizationRegistryGet the rollbackOnly status of the transaction bound to the current thread at the time this method is called.- Specified by:
getRollbackOnlyin interfaceTransactionSynchronizationRegistry- Returns:
- the rollbackOnly status.
-
servletPreInvokeTx
public void servletPreInvokeTx()
PreInvoke Transaction configuration for Servlet Container. BaseContainer.preInvokeTx() handles all this for CMT EJB. Compensate that J2EEInstanceListener.handleBeforeEvent(BEFORE_SERVICE_EVENT) gets called before WSIT WSTX Service pipe associates a JTA txn with incoming thread. Precondition: assumes JTA transaction already associated with current thread. Note: this method is a no-op when invoked on an EJB.
-
servletPostInvokeTx
public void servletPostInvokeTx(Boolean suspend)
PostInvoke Transaction configuration for Servlet Container. BaseContainer.preInvokeTx() handles all this for CMT EJB. Precondition: assumed called prior to current transcation being suspended or released. Note: this method is a no-op when invoked on an EJB. The J2EE method only has an effect on servlets.- Parameters:
suspend- indicate whether the delisting is due to suspension or transaction completion(commmit/rollback)
-
getRemainingTimeout
public int getRemainingTimeout()
Returns in seconds duration till current transaction times out. Returns negative value if transaction has already timedout. Returns 0 if there is no timeout. Returns 0 if any exceptions occur looking up remaining transaction timeout.
-
-