Class 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 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 cache
        underlyingStore - the underlying store
        txnManagerLookup - the transaction manager lookup
        softLockManager - the soft lock manager
        transactionIDFactory - the transaction ID factory
        comparator - the element value comparator
    • Method Detail

      • start

        public void start​(javax.transaction.xa.Xid xid,
                          int flag)
                   throws javax.transaction.xa.XAException
        Specified by:
        start in interface javax.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:
        end in interface javax.transaction.xa.XAResource
        Throws:
        javax.transaction.xa.XAException
      • forget

        public void forget​(javax.transaction.xa.Xid xid)
                    throws javax.transaction.xa.XAException
        Specified by:
        forget in interface javax.transaction.xa.XAResource
        Throws:
        javax.transaction.xa.XAException
      • forgetInternal

        public void forgetInternal​(javax.transaction.xa.Xid xid)
                            throws javax.transaction.xa.XAException
        The 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:
        getTransactionTimeout in interface javax.transaction.xa.XAResource
        Throws:
        javax.transaction.xa.XAException
      • isSameRM

        public boolean isSameRM​(javax.transaction.xa.XAResource xaResource)
                         throws javax.transaction.xa.XAException
        Specified by:
        isSameRM in interface javax.transaction.xa.XAResource
        Throws:
        javax.transaction.xa.XAException
      • prepare

        public int prepare​(javax.transaction.xa.Xid xid)
                    throws javax.transaction.xa.XAException
        Specified by:
        prepare in interface javax.transaction.xa.XAResource
        Throws:
        javax.transaction.xa.XAException
      • prepareInternal

        public int prepareInternal​(javax.transaction.xa.Xid xid)
                            throws javax.transaction.xa.XAException
        The 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:
        commit in interface javax.transaction.xa.XAResource
        Throws:
        javax.transaction.xa.XAException
      • commitInternal

        public void commitInternal​(javax.transaction.xa.Xid xid,
                                   boolean onePhase)
                            throws javax.transaction.xa.XAException
        The commit implementation
        Parameters:
        xid - a XID
        onePhase - 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:
        recover in interface javax.transaction.xa.XAResource
        Throws:
        javax.transaction.xa.XAException
      • rollback

        public void rollback​(javax.transaction.xa.Xid xid)
                      throws javax.transaction.xa.XAException
        Specified by:
        rollback in interface javax.transaction.xa.XAResource
        Throws:
        javax.transaction.xa.XAException
      • rollbackInternal

        public void rollbackInternal​(javax.transaction.xa.Xid xid)
                              throws javax.transaction.xa.XAException
        The 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:
        setTransactionTimeout in interface javax.transaction.xa.XAResource
        Throws:
        javax.transaction.xa.XAException
      • createTransactionContext

        public XATransactionContext createTransactionContext()
                                                      throws javax.transaction.SystemException,
                                                             javax.transaction.RollbackException
        Obtain the already associated XATransactionContext with the current Transaction, or create a new one should none be there yet.
        Specified by:
        createTransactionContext in interface EhcacheXAResource
        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.
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object