Class LZVTask

All Implemented Interfaces:
de.bsvrz.dav.daf.main.ClientSenderInterface

public class LZVTask
extends SingleClientSenderTask
Task zur Bearbeitung von Loeschzeit-Verlängerungsauftraegen.
  • Field Details

    • IGNORE_LOESCH_SCHUTZ

      public static final boolean IGNORE_LOESCH_SCHUTZ
      Nur für Testzwecke: Löschschutz ignorieren
      See Also:
      Constant Field Values
  • Constructor Details

    • LZVTask

      public LZVTask​(ArchiveManager archiveMgr, java.util.concurrent.BlockingQueue<java.lang.Object> inputData, LongTermTaskStatePublisher longTermTaskStatePublisher, int numThreads)
      Erzeugt eine neue Loeschzeit-Verlängerungs-Task.
      Parameters:
      longTermTaskStatePublisher - LongTermTaskStatePublisher
      numThreads - Anzahl Threads, die gleichzeitig das Löschen durchführen.
      archiveMgr - Der Archiv-Manager.
      inputData - Eingangswarteschlange.
  • Method Details

    • getMinRemainingDiskCapa

      public static long getMinRemainingDiskCapa()
      Liefert die Mindest-Restkapazitaet der Festplatte.
      Returns:
      Mindestrestkapazitaet in Byte
    • setMinRemainingDiskCapa

      public static void setMinRemainingDiskCapa​(long minRemainingDiskCapa)
      Setzt die Mindest-Restkapazitaet der Festplatte.
      Parameters:
      minRemainingDiskCapa - Neue Mindestrestkapazitaet in Byte.
    • getCapacityCheckResultData

      public static de.bsvrz.ars.ars.mgmt.tasks.LZVTask.CapacityCheckResultData getCapacityCheckResultData()
      Gibt einen Dummy-Datensatz zurück, der einen Kapazitätscheck (und damit ggf. spontanes Löschen) auslöst
      Returns:
      Dummy-Datensatz
    • getDeleteRegularResultData

      public static de.bsvrz.ars.ars.mgmt.tasks.LZVTask.DeleteRegularResultData getDeleteRegularResultData()
      Gibt einen Dummy-Datensatz zurück, der Reguläres (periodisches) Löschen auslöst
      Returns:
      Dummy-Datensatz
    • getDeletePermanentlyResultData

      public static de.bsvrz.ars.ars.mgmt.tasks.LZVTask.DeletePermanentlyResultData getDeletePermanentlyResultData()
      Gibt einen Dummy-Datensatz zurück, der endgültiges Löschen auslöst
      Returns:
      Dummy-Datensatz
    • execute

      public void execute()
      Description copied from class: Task
      Diese Methode muss implementiert werden und definiert die Aktion, die dieser Task ausführt.

      Der Implementierende sollte am ende super.execute() ausführen.

      Overrides:
      execute in class RepeatingTask
    • work

      protected void work​(de.bsvrz.dav.daf.main.ResultData resultData)
      Führt das Löschen, spontanes Löschen oder die Löschzeitverlängerung aus.
      Specified by:
      work in class QueueTask<de.bsvrz.dav.daf.main.ResultData>
      Parameters:
      resultData - Auftrag/Arbeitsschritt
    • deleteSpontan

      public void deleteSpontan​(de.bsvrz.dav.daf.main.archive.ArchiveDataSpecification[] ads) throws java.lang.Exception
      Der DeleteSpontanTask löscht bei knapp werdendem Speicherplatz unwichtige Container.

      Dazu überprüft er in einem parametrierbaren Zyklus, wieviel Speicherplatz dem Archivsystem noch zur Verfuegung steht. Erreicht die vorhandene Kapazität einen Schwellwert, werden folgende Daten geloescht:

      • archivierte Daten, deren Loeschschutz abgelaufen ist und die nicht (mehr) gesichert werden müssen,
      • wiederhergestellte Daten,
      • archivierte Simulationsdaten,
      • archivierte Daten, deren Loeschschutz nicht abgelaufen ist, die aber schon gesichert wurden.
      Throws:
      java.lang.Exception
    • getFreeDiskSpace

      public long getFreeDiskSpace() throws java.lang.Exception
      Gibt den freien Speicherplatz zurück und veröffentlicht ihn ebenfalls über den Datenverteiler (falls möglich)
      Returns:
      frier Speicherpaltz in Bytes
      Throws:
      java.lang.Exception
    • containerWalk

      public void containerWalk​(de.bsvrz.dav.daf.main.archive.ArchiveDataSpecification[] ads, de.bsvrz.ars.ars.mgmt.tasks.LZVTask.ContainerHandler handler) throws java.lang.Exception
      Die generelle Container-Walk-Methode.

      Je nachdem, ob die ArchiveDataSpec gefuellt ist oder nicht, wird ein ContainerWalk über das komplette Persistenz-Verzeichnis (containerWalkAllFromDir) oder alle spezifizierten Container (containerWalkAllByDataSpec) ausgeführt.

      Achtung!
      Die Methode löscht je nach übergebenen Parametern Archivdaten!

      Parameters:
      ads -
      Throws:
      PersistenceException - Lesefehler im Persistenzverzeichnis
      IndexException - Lesefehler der Indexe (z. B. korrupt)
      java.lang.Exception