Class XARecoveryResourceImple

All Implemented Interfaces:
ExceptionDeferrer, XARecoveryResource

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()
      Deprecated.
      Only used by a test
    • 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 class: XAResourceRecord
      Independant recovery cannot occur. Must be driven by the recovery of the local transaction, i.e., top-down recovery.
      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 id doesn't matter
      Overrides:
      notAProblem in class XAResourceRecord