Package net.sf.ehcache.transaction
Class DelegatingTransactionIDFactory
- java.lang.Object
-
- net.sf.ehcache.transaction.DelegatingTransactionIDFactory
-
- All Implemented Interfaces:
TransactionIDFactory
public class DelegatingTransactionIDFactory extends java.lang.Object implements TransactionIDFactory
A TransactionIDFactory implementation with delegates calls to either a clustered or non-clustered factory- Author:
- Ludovic Orban
-
-
Constructor Summary
Constructors Constructor Description DelegatingTransactionIDFactory(FeaturesManager featuresManager, TerracottaClient terracottaClient, java.lang.String cacheManagerName)Create a new DelegatingTransactionIDFactory
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclear(TransactionID transactionID)Clear this transaction's state representation.TransactionIDcreateTransactionID()Create a unique transaction IDXidTransactionIDcreateXidTransactionID(javax.transaction.xa.Xid xid, Ehcache cache)Create a transaction ID based on a XID for uniquenessjava.util.Set<TransactionID>getAllTransactionIDs()Get the set of all known transactions.java.util.Set<XidTransactionID>getAllXidTransactionIDsFor(Ehcache cache)Get the set of all XID transactions of a cache.booleanisDecisionCommit(TransactionID transactionID)Check if the given transaction should be committed or notbooleanisExpired(TransactionID transactionID)Check if the transaction ID expired, ie: that the transaction died abnormallyjava.lang.BooleanisPersistent()Returntrueif the factory state is persistent (survives JVM restart).voidmarkForCommit(TransactionID transactionID)Mark that this transaction's decision is commitvoidmarkForRollback(XidTransactionID transactionID)Mark this transaction ID for rollbackTransactionIDrestoreTransactionID(TransactionIDSerializedForm serializedForm)Restore a transaction ID from its serialized formXidTransactionIDrestoreXidTransactionID(XidTransactionIDSerializedForm serializedForm)Restore a XID transaction ID from its serialized form
-
-
-
Constructor Detail
-
DelegatingTransactionIDFactory
public DelegatingTransactionIDFactory(FeaturesManager featuresManager, TerracottaClient terracottaClient, java.lang.String cacheManagerName)
Create a new DelegatingTransactionIDFactory- Parameters:
terracottaClient- a terracotta clientcacheManagerName- the name of the cache manager which creates this.
-
-
Method Detail
-
createTransactionID
public TransactionID createTransactionID()
Create a unique transaction ID- Specified by:
createTransactionIDin interfaceTransactionIDFactory- Returns:
- a transaction ID
-
restoreTransactionID
public TransactionID restoreTransactionID(TransactionIDSerializedForm serializedForm)
Restore a transaction ID from its serialized form- Specified by:
restoreTransactionIDin interfaceTransactionIDFactory- Parameters:
serializedForm- the TransactionID serialized form- Returns:
- the restored TransactionID
-
createXidTransactionID
public XidTransactionID createXidTransactionID(javax.transaction.xa.Xid xid, Ehcache cache)
Create a transaction ID based on a XID for uniqueness- Specified by:
createXidTransactionIDin interfaceTransactionIDFactory- Parameters:
xid- the XID- Returns:
- a transaction ID
-
restoreXidTransactionID
public XidTransactionID restoreXidTransactionID(XidTransactionIDSerializedForm serializedForm)
Restore a XID transaction ID from its serialized form- Specified by:
restoreXidTransactionIDin interfaceTransactionIDFactory- Parameters:
serializedForm- the XidTransactionID serialized form- Returns:
- the restored XidTransactionID
-
markForCommit
public void markForCommit(TransactionID transactionID)
Description copied from interface:TransactionIDFactoryMark that this transaction's decision is commit- Specified by:
markForCommitin interfaceTransactionIDFactory- Parameters:
transactionID- transaction to be marked
-
markForRollback
public void markForRollback(XidTransactionID transactionID)
Description copied from interface:TransactionIDFactoryMark this transaction ID for rollback- Specified by:
markForRollbackin interfaceTransactionIDFactory
-
isDecisionCommit
public boolean isDecisionCommit(TransactionID transactionID)
Description copied from interface:TransactionIDFactoryCheck if the given transaction should be committed or not- Specified by:
isDecisionCommitin interfaceTransactionIDFactory- Parameters:
transactionID- transaction to be queried- Returns:
- true if the transaction should be committed
-
clear
public void clear(TransactionID transactionID)
Description copied from interface:TransactionIDFactoryClear this transaction's state representation.- Specified by:
clearin interfaceTransactionIDFactory- Parameters:
transactionID- transaction to be cleared
-
getAllXidTransactionIDsFor
public java.util.Set<XidTransactionID> getAllXidTransactionIDsFor(Ehcache cache)
Description copied from interface:TransactionIDFactoryGet the set of all XID transactions of a cache.- Specified by:
getAllXidTransactionIDsForin interfaceTransactionIDFactory- Returns:
- the set of transactions
-
getAllTransactionIDs
public java.util.Set<TransactionID> getAllTransactionIDs()
Description copied from interface:TransactionIDFactoryGet the set of all known transactions.- Specified by:
getAllTransactionIDsin interfaceTransactionIDFactory- Returns:
- the set of transactions
-
isExpired
public boolean isExpired(TransactionID transactionID)
Description copied from interface:TransactionIDFactoryCheck if the transaction ID expired, ie: that the transaction died abnormally- Specified by:
isExpiredin interfaceTransactionIDFactory- Returns:
- true if the transaction ID expired and should be cleaned up, false otherwise
-
isPersistent
public java.lang.Boolean isPersistent()
Description copied from interface:TransactionIDFactoryReturntrueif the factory state is persistent (survives JVM restart).This is a tri-state return:
Boolean.TRUE: persistentBoolean.FALSE: not persistentnull: not yet determined
- Specified by:
isPersistentin interfaceTransactionIDFactory- Returns:
trueis state is persistent
-
-