Class SubordinationManagerXAResourceOrphanFilter

java.lang.Object
com.arjuna.ats.internal.jta.recovery.arjunacore.SubordinationManagerXAResourceOrphanFilter
All Implemented Interfaces:
XAResourceOrphanFilter

public class SubordinationManagerXAResourceOrphanFilter extends Object implements XAResourceOrphanFilter
An XAResourceOrphanFilter which vetos rollback for xids which have an in-flight subordinate transaction.

The SubordinateAtomicActionRecoveryModule must be loaded and in a position prior to the XARecoveryModule within the list of recovery modules for this to work so we verify that during orphan detection.

  • Constructor Details

    • SubordinationManagerXAResourceOrphanFilter

      public SubordinationManagerXAResourceOrphanFilter()
  • Method Details

    • checkXid

      public XAResourceOrphanFilter.Vote checkXid(Xid xid)
      Description copied from interface: XAResourceOrphanFilter
      Called by the XARecoveryModule for each in-doubt Xid. Implementations should return Vote.ROLLBACK if they recognize the xid and believe it should be aborted. Vote.LEAVE_ALONE if they recognize the xid and do not want the XARecovery module to roll it back. Vote.ABSTAIN if they do not recognize the xid. Each registered XAResourceOrphanFilter will be consulted before any rollback on each recovery pass, so they may change their mind over time e.g. if new information becomes available due to other recovery activity.
      Specified by:
      checkXid in interface XAResourceOrphanFilter
      Parameters:
      xid - The in-doubt xid.
      Returns:
      a Vote in accordance with the guidelines above.