org.infinispan.transaction
Class TransactionTable

java.lang.Object
  extended by org.infinispan.transaction.TransactionTable
Direct Known Subclasses:
XaTransactionTable

public class TransactionTable
extends Object

Repository for RemoteTransaction and TransactionXaAdapters (locally originated transactions).

Since:
4.0
Author:
Mircea.Markus@jboss.com, Galder ZamarreƱo

Nested Class Summary
 class TransactionTable.StaleTransactionCleanup
           
 
Field Summary
protected  Configuration configuration
           
protected  InvocationContextContainer icc
           
protected  ConcurrentMap<Transaction,LocalTransaction> localTransactions
           
protected  ConcurrentMap<GlobalTransaction,RemoteTransaction> remoteTransactions
           
protected  TransactionCoordinator txCoordinator
           
protected  TransactionFactory txFactory
           
 
Constructor Summary
TransactionTable()
           
 
Method Summary
 boolean containRemoteTx(GlobalTransaction globalTransaction)
           
 boolean containsLocalTx(Transaction tx)
          Returns true if the given transaction is already registered with the transaction table.
 RemoteTransaction createRemoteTransaction(GlobalTransaction globalTx)
          Creates and register a RemoteTransaction with no modifications.
 RemoteTransaction createRemoteTransaction(GlobalTransaction globalTx, WriteCommand[] modifications)
          Creates and register a RemoteTransaction based on the supplied params.
 void enlist(Transaction transaction, LocalTransaction localTransaction)
           
 void failureCompletingTransaction(Transaction tx)
           
 LocalTransaction getLocalTransaction(Transaction tx)
           
 int getLocalTxCount()
           
 Set<Object> getLockedKeysForRemoteTransaction(GlobalTransaction gtx)
           
 LocalTransaction getOrCreateLocalTransaction(Transaction transaction, InvocationContext ctx)
          Returns the TransactionXaAdapter corresponding to the supplied transaction.
 RemoteTransaction getRemoteTransaction(GlobalTransaction txId)
          Returns the RemoteTransaction associated with the supplied transaction id.
 Collection<RemoteTransaction> getRemoteTransactions()
           
 int getRemoteTxCount()
           
 void initialize(RpcManager rpcManager, Configuration configuration, InvocationContextContainer icc, InterceptorChain invoker, CacheNotifier notifier, TransactionFactory gtf, EmbeddedCacheManager cm, TransactionCoordinator txCoordinator, TransactionSynchronizationRegistry transactionSynchronizationRegistry, LockManager lockManager)
           
 void localTransactionPrepared(LocalTransaction localTransaction)
           
 void remoteTransactionCompleted(GlobalTransaction gtx, boolean committed)
          Removes the RemoteTransaction corresponding to the given tx.
 void remoteTransactionPrepared(GlobalTransaction gtx)
           
 boolean removeLocalTransaction(LocalTransaction localTransaction)
          Removes the TransactionXaAdapter corresponding to the given tx.
protected  void updateStateOnNodesLeaving(Collection<Address> leavers)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

localTransactions

protected final ConcurrentMap<Transaction,LocalTransaction> localTransactions

remoteTransactions

protected final ConcurrentMap<GlobalTransaction,RemoteTransaction> remoteTransactions

configuration

protected Configuration configuration

icc

protected InvocationContextContainer icc

txCoordinator

protected TransactionCoordinator txCoordinator

txFactory

protected TransactionFactory txFactory
Constructor Detail

TransactionTable

public TransactionTable()
Method Detail

initialize

public void initialize(RpcManager rpcManager,
                       Configuration configuration,
                       InvocationContextContainer icc,
                       InterceptorChain invoker,
                       CacheNotifier notifier,
                       TransactionFactory gtf,
                       EmbeddedCacheManager cm,
                       TransactionCoordinator txCoordinator,
                       TransactionSynchronizationRegistry transactionSynchronizationRegistry,
                       LockManager lockManager)

getLockedKeysForRemoteTransaction

public Set<Object> getLockedKeysForRemoteTransaction(GlobalTransaction gtx)

remoteTransactionPrepared

public void remoteTransactionPrepared(GlobalTransaction gtx)

localTransactionPrepared

public void localTransactionPrepared(LocalTransaction localTransaction)

enlist

public void enlist(Transaction transaction,
                   LocalTransaction localTransaction)

failureCompletingTransaction

public void failureCompletingTransaction(Transaction tx)

containsLocalTx

public boolean containsLocalTx(Transaction tx)
Returns true if the given transaction is already registered with the transaction table.

Parameters:
tx - if null false is returned

updateStateOnNodesLeaving

protected void updateStateOnNodesLeaving(Collection<Address> leavers)

getRemoteTransaction

public RemoteTransaction getRemoteTransaction(GlobalTransaction txId)
Returns the RemoteTransaction associated with the supplied transaction id. Returns null if no such association exists.


createRemoteTransaction

public RemoteTransaction createRemoteTransaction(GlobalTransaction globalTx,
                                                 WriteCommand[] modifications)
Creates and register a RemoteTransaction based on the supplied params. Returns the created transaction.

Throws:
IllegalStateException - if an attempt to create a RemoteTransaction for an already registered id is made.

createRemoteTransaction

public RemoteTransaction createRemoteTransaction(GlobalTransaction globalTx)
Creates and register a RemoteTransaction with no modifications. Returns the created transaction.

Throws:
IllegalStateException - if an attempt to create a RemoteTransaction for an already registered id is made.

getOrCreateLocalTransaction

public LocalTransaction getOrCreateLocalTransaction(Transaction transaction,
                                                    InvocationContext ctx)
Returns the TransactionXaAdapter corresponding to the supplied transaction. If none exists, will be created first.


removeLocalTransaction

public boolean removeLocalTransaction(LocalTransaction localTransaction)
Removes the TransactionXaAdapter corresponding to the given tx. Returns true if such an tx exists.


remoteTransactionCompleted

public void remoteTransactionCompleted(GlobalTransaction gtx,
                                       boolean committed)
Removes the RemoteTransaction corresponding to the given tx.


getRemoteTxCount

public int getRemoteTxCount()

getLocalTxCount

public int getLocalTxCount()

getLocalTransaction

public LocalTransaction getLocalTransaction(Transaction tx)

containRemoteTx

public boolean containRemoteTx(GlobalTransaction globalTransaction)

getRemoteTransactions

public Collection<RemoteTransaction> getRemoteTransactions()

-->

Copyright © 2011 JBoss, a division of Red Hat. All Rights Reserved.