Class ArchiveTask


public class ArchiveTask extends RepeatingTask
Task zur Archivierung von Datensätzen. Ist nicht von SingleTask abgeleitet, weil ein spezieller ArchiveRingBuffer verwendet wird, der zwei Objekte (ResultData und Archivzeit) speichern kann. Die work()-Methode hat deswegen zwei Parameter.
  • Constructor Details

    • ArchiveTask

      public ArchiveTask(ArchiveManager archiveMgr, SignalingQueue<ArchiveJob> inQueue)
      Konstruktor des Archiv-Tasks.
      Parameters:
      archiveMgr - Archiv-Manager
      inQueue - Input-Queue
  • Method Details

    • getSerializationHelper

      public SerializationHelper getSerializationHelper()
    • setContainerSettings

      public static void setContainerSettings(de.bsvrz.sys.funclib.losb.datk.ContainerSettings cs)
      Setzt die Container-Einstellungen des Archivsystems.
      Parameters:
      cs - Container-Einstellungen
    • getContainerSettings

      public static de.bsvrz.sys.funclib.losb.datk.ContainerSettings getContainerSettings()
      Liefert die Container-Einstellungen des Archivsystems.
      Returns:
      Container-Einstellungen
    • step

      public void step() throws InterruptedException
      Description copied from class: RepeatingTask
      Implementiert die beliebige wiederholt auszuführende Aufgabe
      Specified by:
      step in class RepeatingTask
      Throws:
      InterruptedException - Thread unterbrochen
    • terminateTask

      public void terminateTask()
      Description copied from class: Task
      Terminiert den Task, indem dafür gesorgt wird, das Task.shouldTerminate() true zurückliefert. Der Task sollte diese Funktion regelmäßig aufrufen um dann bei Rückgabe von true den Task zeitnah zu beenden.
      Overrides:
      terminateTask in class Task
    • getSuccessCount

      public long getSuccessCount()
      Returns:
      Anzahl der seit Systemstart erfolgreich archivierten Datensätze
    • getFailedCount

      public long getFailedCount()
      Returns:
      Anzahl der seit Systemstart nicht erfolgreich archivierten Datensätze
    • getSuccessCountRequested

      public long getSuccessCountRequested()
      Returns:
      Anzahl der seit Systemstart erfolgreich archivierten Datensätze
    • getFailedCountRequested

      public long getFailedCountRequested()
      Returns:
      Anzahl der seit Systemstart nicht erfolgreich archivierten Datensätze
    • getSuccessCountOnline

      public long getSuccessCountOnline()
      Returns:
      Anzahl der seit Systemstart erfolgreich archivierten Datensätze
    • getFailedCountOnline

      public long getFailedCountOnline()
      Returns:
      Anzahl der seit Systemstart nicht erfolgreich archivierten Datensätze
    • getCloseContainerSuccess

      public long getCloseContainerSuccess()
      Returns:
      Zahl aller seit dem Start oder letzten resetDSCounter() erfolgreich verarbeiteten Close-Container-Datensätze. Kann zur Test-Synchronisation verwendet werden.
    • resetDSCounter

      public void resetDSCounter()
      Setzt alle Zähler auf 0.
    • setLastArchiveTime

      public static void setLastArchiveTime(long atime)
    • getLastArchiveTime

      public static long getLastArchiveTime()
      Letzte verwendete Archivzeit. Wird für die Archivzeitüberwachung benutzt.
    • isIndexGap

      public static boolean isIndexGap(long lastDataIdx, long nextDataIdx)
      Gibt zurück, ob zwischen 2 Datensätze eine Indexlücke vorliegt
      Parameters:
      lastDataIdx - erster Datensatz
      nextDataIdx - nächster Datensatz
      Returns:
      true: Indexlücke, sonst false
    • sendAck

      protected void sendAck(de.bsvrz.dav.daf.main.ResultData rd, DataIdentNode din)
      Sendet eine Quittung für den angegebenen Datensatz.
      Parameters:
      rd - Datensatz
      din - Datenknoten mit Parametrierung
    • getFailCounterOnline

      public AtomicLong getFailCounterOnline()
    • getFailCounterRequested

      public AtomicLong getFailCounterRequested()
    • getCloseCounter

      public AtomicLong getCloseCounter()
    • getSuccessCounterOnline

      public AtomicLong getSuccessCounterOnline()
    • getSuccessCounterRequested

      public AtomicLong getSuccessCounterRequested()