public class DelegatingTransactionIDFactory extends java.lang.Object implements TransactionIDFactory
Modifier and Type | Field and Description |
---|---|
private java.lang.String |
cacheManagerName |
private ClusteredInstanceFactory |
clusteredInstanceFactory |
private FeaturesManager |
featuresManager |
private TerracottaClient |
terracottaClient |
private java.util.concurrent.atomic.AtomicReference<TransactionIDFactory> |
transactionIDFactory |
Constructor and Description |
---|
DelegatingTransactionIDFactory(FeaturesManager featuresManager,
TerracottaClient terracottaClient,
java.lang.String cacheManagerName)
Create a new DelegatingTransactionIDFactory
|
Modifier and Type | Method and Description |
---|---|
void |
clear(TransactionID transactionID)
Clear this transaction's state representation.
|
TransactionID |
createTransactionID()
Create a unique transaction ID
|
XidTransactionID |
createXidTransactionID(javax.transaction.xa.Xid xid,
Ehcache cache)
Create a transaction ID based on a XID for uniqueness
|
private TransactionIDFactory |
get() |
java.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.
|
boolean |
isDecisionCommit(TransactionID transactionID)
Check if the given transaction should be committed or not
|
boolean |
isExpired(TransactionID transactionID)
Check if the transaction ID expired, ie: that the transaction died abnormally
|
java.lang.Boolean |
isPersistent()
Return
true if the factory state is persistent (survives JVM restart). |
void |
markForCommit(TransactionID transactionID)
Mark that this transaction's decision is commit
|
void |
markForRollback(XidTransactionID transactionID)
Mark this transaction ID for rollback
|
TransactionID |
restoreTransactionID(TransactionIDSerializedForm serializedForm)
Restore a transaction ID from its serialized form
|
XidTransactionID |
restoreXidTransactionID(XidTransactionIDSerializedForm serializedForm)
Restore a XID transaction ID from its serialized form
|
private final FeaturesManager featuresManager
private final TerracottaClient terracottaClient
private final java.lang.String cacheManagerName
private volatile ClusteredInstanceFactory clusteredInstanceFactory
private volatile java.util.concurrent.atomic.AtomicReference<TransactionIDFactory> transactionIDFactory
public DelegatingTransactionIDFactory(FeaturesManager featuresManager, TerracottaClient terracottaClient, java.lang.String cacheManagerName)
terracottaClient
- a terracotta clientcacheManagerName
- the name of the cache manager which creates this.private TransactionIDFactory get()
public TransactionID createTransactionID()
createTransactionID
in interface TransactionIDFactory
public TransactionID restoreTransactionID(TransactionIDSerializedForm serializedForm)
restoreTransactionID
in interface TransactionIDFactory
serializedForm
- the TransactionID serialized formpublic XidTransactionID createXidTransactionID(javax.transaction.xa.Xid xid, Ehcache cache)
createXidTransactionID
in interface TransactionIDFactory
xid
- the XIDpublic XidTransactionID restoreXidTransactionID(XidTransactionIDSerializedForm serializedForm)
restoreXidTransactionID
in interface TransactionIDFactory
serializedForm
- the XidTransactionID serialized formpublic void markForCommit(TransactionID transactionID)
TransactionIDFactory
markForCommit
in interface TransactionIDFactory
transactionID
- transaction to be markedpublic void markForRollback(XidTransactionID transactionID)
TransactionIDFactory
markForRollback
in interface TransactionIDFactory
public boolean isDecisionCommit(TransactionID transactionID)
TransactionIDFactory
isDecisionCommit
in interface TransactionIDFactory
transactionID
- transaction to be queriedpublic void clear(TransactionID transactionID)
TransactionIDFactory
clear
in interface TransactionIDFactory
transactionID
- transaction to be clearedpublic java.util.Set<XidTransactionID> getAllXidTransactionIDsFor(Ehcache cache)
TransactionIDFactory
getAllXidTransactionIDsFor
in interface TransactionIDFactory
public java.util.Set<TransactionID> getAllTransactionIDs()
TransactionIDFactory
getAllTransactionIDs
in interface TransactionIDFactory
public boolean isExpired(TransactionID transactionID)
TransactionIDFactory
isExpired
in interface TransactionIDFactory
public java.lang.Boolean isPersistent()
TransactionIDFactory
true
if the factory state is persistent (survives JVM restart).isPersistent
in interface TransactionIDFactory
true
is state is persistent