Package net.sf.ehcache.transaction.xa
Class EhcacheXAResourceImpl
- java.lang.Object
-
- net.sf.ehcache.transaction.xa.EhcacheXAResourceImpl
-
- All Implemented Interfaces:
javax.transaction.xa.XAResource,EhcacheXAResource
public class EhcacheXAResourceImpl extends java.lang.Object implements EhcacheXAResource
The EhcacheXAResource implementation- Author:
- Ludovic Orban
-
-
Constructor Summary
Constructors Constructor Description EhcacheXAResourceImpl(Ehcache cache, Store underlyingStore, TransactionManagerLookup txnManagerLookup, SoftLockManager softLockManager, TransactionIDFactory transactionIDFactory, ElementValueComparator comparator, org.terracotta.statistics.observer.OperationObserver<XaCommitOutcome> commitObserver, org.terracotta.statistics.observer.OperationObserver<XaRollbackOutcome> rollbackObserver, org.terracotta.statistics.observer.OperationObserver<XaRecoveryOutcome> recoveryObserver)Constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddTwoPcExecutionListener(XAExecutionListener listener)Add a listener which will be called back according to the 2PC lifecyclevoidcommit(javax.transaction.xa.Xid xid, boolean onePhase)voidcommitInternal(javax.transaction.xa.Xid xid, boolean onePhase)The commit implementationXATransactionContextcreateTransactionContext()Obtain the already associatedXATransactionContextwith the current Transaction, or create a new one should none be there yet.voidend(javax.transaction.xa.Xid xid, int flag)voidforget(javax.transaction.xa.Xid xid)voidforgetInternal(javax.transaction.xa.Xid xid)The forget implementationjava.lang.StringgetCacheName()Getter to the name of the cache wrapped by this XAResourceXATransactionContextgetCurrentTransactionContext()Gets the currentXATransactionContextassociated with this resourceintgetTransactionTimeout()booleanisSameRM(javax.transaction.xa.XAResource xaResource)intprepare(javax.transaction.xa.Xid xid)intprepareInternal(javax.transaction.xa.Xid xid)The prepare implementationjavax.transaction.xa.Xid[]recover(int flags)voidrollback(javax.transaction.xa.Xid xid)voidrollbackInternal(javax.transaction.xa.Xid xid)The rollback implementationbooleansetTransactionTimeout(int timeout)voidstart(javax.transaction.xa.Xid xid, int flag)java.lang.StringtoString()
-
-
-
Constructor Detail
-
EhcacheXAResourceImpl
public EhcacheXAResourceImpl(Ehcache cache, Store underlyingStore, TransactionManagerLookup txnManagerLookup, SoftLockManager softLockManager, TransactionIDFactory transactionIDFactory, ElementValueComparator comparator, org.terracotta.statistics.observer.OperationObserver<XaCommitOutcome> commitObserver, org.terracotta.statistics.observer.OperationObserver<XaRollbackOutcome> rollbackObserver, org.terracotta.statistics.observer.OperationObserver<XaRecoveryOutcome> recoveryObserver)
Constructor- Parameters:
cache- the cacheunderlyingStore- the underlying storetxnManagerLookup- the transaction manager lookupsoftLockManager- the soft lock managertransactionIDFactory- the transaction ID factorycomparator- the element value comparator
-
-
Method Detail
-
start
public void start(javax.transaction.xa.Xid xid, int flag) throws javax.transaction.xa.XAException- Specified by:
startin interfacejavax.transaction.xa.XAResource- Throws:
javax.transaction.xa.XAException
-
end
public void end(javax.transaction.xa.Xid xid, int flag) throws javax.transaction.xa.XAException- Specified by:
endin interfacejavax.transaction.xa.XAResource- Throws:
javax.transaction.xa.XAException
-
forget
public void forget(javax.transaction.xa.Xid xid) throws javax.transaction.xa.XAException- Specified by:
forgetin interfacejavax.transaction.xa.XAResource- Throws:
javax.transaction.xa.XAException
-
forgetInternal
public void forgetInternal(javax.transaction.xa.Xid xid) throws javax.transaction.xa.XAExceptionThe forget implementation- Parameters:
xid- a XID- Throws:
javax.transaction.xa.XAException- when an error occurs
-
getTransactionTimeout
public int getTransactionTimeout() throws javax.transaction.xa.XAException- Specified by:
getTransactionTimeoutin interfacejavax.transaction.xa.XAResource- Throws:
javax.transaction.xa.XAException
-
isSameRM
public boolean isSameRM(javax.transaction.xa.XAResource xaResource) throws javax.transaction.xa.XAException- Specified by:
isSameRMin interfacejavax.transaction.xa.XAResource- Throws:
javax.transaction.xa.XAException
-
prepare
public int prepare(javax.transaction.xa.Xid xid) throws javax.transaction.xa.XAException- Specified by:
preparein interfacejavax.transaction.xa.XAResource- Throws:
javax.transaction.xa.XAException
-
prepareInternal
public int prepareInternal(javax.transaction.xa.Xid xid) throws javax.transaction.xa.XAExceptionThe prepare implementation- Parameters:
xid- a XID- Returns:
- XA_OK or XA_RDONLY
- Throws:
javax.transaction.xa.XAException- when an error occurs
-
commit
public void commit(javax.transaction.xa.Xid xid, boolean onePhase) throws javax.transaction.xa.XAException- Specified by:
commitin interfacejavax.transaction.xa.XAResource- Throws:
javax.transaction.xa.XAException
-
commitInternal
public void commitInternal(javax.transaction.xa.Xid xid, boolean onePhase) throws javax.transaction.xa.XAExceptionThe commit implementation- Parameters:
xid- a XIDonePhase- true if onePhase, false otherwise- Throws:
javax.transaction.xa.XAException- when an error occurs
-
recover
public javax.transaction.xa.Xid[] recover(int flags) throws javax.transaction.xa.XAException- Specified by:
recoverin interfacejavax.transaction.xa.XAResource- Throws:
javax.transaction.xa.XAException
-
rollback
public void rollback(javax.transaction.xa.Xid xid) throws javax.transaction.xa.XAException- Specified by:
rollbackin interfacejavax.transaction.xa.XAResource- Throws:
javax.transaction.xa.XAException
-
rollbackInternal
public void rollbackInternal(javax.transaction.xa.Xid xid) throws javax.transaction.xa.XAExceptionThe rollback implementation- Parameters:
xid- a XID- Throws:
javax.transaction.xa.XAException- when an error occurs
-
setTransactionTimeout
public boolean setTransactionTimeout(int timeout) throws javax.transaction.xa.XAException- Specified by:
setTransactionTimeoutin interfacejavax.transaction.xa.XAResource- Throws:
javax.transaction.xa.XAException
-
addTwoPcExecutionListener
public void addTwoPcExecutionListener(XAExecutionListener listener)
Add a listener which will be called back according to the 2PC lifecycle- Specified by:
addTwoPcExecutionListenerin interfaceEhcacheXAResource- Parameters:
listener- the XAExecutionListener
-
getCacheName
public java.lang.String getCacheName()
Getter to the name of the cache wrapped by this XAResource- Specified by:
getCacheNamein interfaceEhcacheXAResource- Returns:
Ehcache.getName()value
-
createTransactionContext
public XATransactionContext createTransactionContext() throws javax.transaction.SystemException, javax.transaction.RollbackException
Obtain the already associatedXATransactionContextwith the current Transaction, or create a new one should none be there yet.- Specified by:
createTransactionContextin interfaceEhcacheXAResource- Returns:
- The associated Transaction associated
XATransactionContext - Throws:
javax.transaction.SystemException- Thrown if the associated transaction manager encounters an unexpected error condition.javax.transaction.RollbackException- Thrown if the resource has to be enlisted with the transaction, while it is marked for rollback only.
-
getCurrentTransactionContext
public XATransactionContext getCurrentTransactionContext()
Gets the currentXATransactionContextassociated with this resource- Specified by:
getCurrentTransactionContextin interfaceEhcacheXAResource- Returns:
- the current
XATransactionContext, or null if none
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-