Class XARecoveryResourceImple

java.lang.Object
org.omg.PortableServer.Servant
All Implemented Interfaces:
ArjunaSubtranAwareResourceOperations, OTSAbstractRecordOperations, XARecoveryResource, org.omg.CORBA.portable.InvokeHandler, ResourceOperations, SubtransactionAwareResourceOperations

public class XARecoveryResourceImple extends XAResourceRecord implements XARecoveryResource
  • Constructor Details

    • XARecoveryResourceImple

      public XARecoveryResourceImple(Uid u)
    • XARecoveryResourceImple

      public XARecoveryResourceImple(Uid u, XAResource res)
  • Method Details

    • getXAResource

      public final XAResource getXAResource()
    • recoverable

      public int recoverable()
      Description copied from interface: XARecoveryResource
      If we don't have an XAResource then we cannot recover at this stage. The XAResource will have to be provided for us and then we can retry. Because recovery happens periodically, it is possible that it takes a snapshot of a transaction that is still running and will vanish from the log anyway. If that happens, then we don't need to (and can't) run recovery on it.
      Specified by:
      recoverable in interface XARecoveryResource
    • recover

      public int recover()
      Description copied from interface: XARecoveryResource
      Attempt the recovery. Return one of the status values above.
      Specified by:
      recover in interface XARecoveryResource
      Overrides:
      recover in class XAResourceRecord
    • notAProblem

      protected boolean notAProblem(XAException ex, boolean commit)
      Is the XAException a non-error when received in reply to commit or rollback ? In recovery, the commit/rollback may have been sent before (possibly only just before, in another thread) - in which case the RM will not recognise the XID but it doesn't matter
      Overrides:
      notAProblem in class XAResourceRecord