Class RecoveryManagerImple

java.lang.Object
com.arjuna.ats.internal.arjuna.recovery.RecoveryManagerImple

public class RecoveryManagerImple extends Object
The RecoveryManagerImple - does the real work. Currently we can have only one of these per node, so each instance checks it's the only one running. If it isn't it will kill itself before doing any work.
  • Constructor Details

    • RecoveryManagerImple

      public RecoveryManagerImple(boolean threaded)
      Does the work of setting up crash recovery.
      Parameters:
      threaded - if true then the manager will start a separate thread to run recovery periodically.
  • Method Details

    • scan

      public final void scan()
    • addModule

      public final void addModule(RecoveryModule module)
    • removeModule

      public final void removeModule(RecoveryModule module, boolean waitOnScan)
    • removeAllModules

      public final void removeAllModules(boolean waitOnScan)
    • getModules

      public final Vector<RecoveryModule> getModules()
    • start

      public void start()
    • stop

      public void stop(boolean async)
      stop the recovery manager
      Parameters:
      async - false means wait for any recovery scan in progress to complete
    • trySuspendScan

      public PeriodicRecovery.Mode trySuspendScan(boolean async)
      Suspend the recovery manager. If the recovery manager is in the process of doing recovery scans then it will be suspended afterwards, in order to preserve data integrity.
      Parameters:
      async - false means wait for the recovery manager to finish any scans before returning.
    • resumeScan

      public void resumeScan()
    • waitForTermination

      public void waitForTermination()
      wait for the recovery implementation to be shut down.