Class ArchiveManager

java.lang.Object
de.bsvrz.sys.funclib.losb.DAVAppBase
de.bsvrz.ars.ars.mgmt.ArchiveManager
All Implemented Interfaces:
TaskManager, TaskManagerInterface, de.bsvrz.dav.daf.main.ApplicationCloseActionHandler

public class ArchiveManager extends de.bsvrz.sys.funclib.losb.DAVAppBase implements TaskManager
Zentrale Archiv-Verwaltung.
  • Constructor Details

    • ArchiveManager

      public ArchiveManager(String[] args) throws Exception
      Haupt-Konstruktor des Archivsystems
      Parameters:
      args - Kommandozeilen-Argumente
      Throws:
      Exception - Fehler bei Initialisierung
  • Method Details

    • detectDomain

      @Nullable public static WeekDomain detectDomain(Path archivePath, boolean silent) throws IOException
      Ermittelt, nach welcher Struktur bzw. welcher Zeit-Intervall-Aufteilung das persistenzverzeichnis aufgebaut ist.
      Parameters:
      archivePath - Wurzelverzeichnis des Archivsystems
      silent - Sollen hilfreiche Debug-Ausgaben gemacht werden?
      Returns:
      entweder ein WeekDomain-Objekt oder null, falls das Persistenzverzeichnis das alte Format hat
      Throws:
      IOException - Fehler bei Analyse
    • getArchiveObject

      public final de.bsvrz.dav.daf.main.config.ConfigurationObject getArchiveObject()
      Gibt das Archiv-Objekt vom Typ "typ.archiv" zurück
      Returns:
      das Archiv-Objekt
    • getDataModel

      @Nullable public de.bsvrz.dav.daf.main.config.DataModel getDataModel()
      Overrides:
      getDataModel in class de.bsvrz.sys.funclib.losb.DAVAppBase
    • wasTerminated

      public boolean wasTerminated()
      Gibt true zurück, wenn das Archivsystem sich gerade beendet.
      Specified by:
      wasTerminated in interface TaskManagerInterface
      Returns:
      true, wenn das Archivsystem sich gerade beendet, sonst false
    • run

      public void run(RuntimeControl runtimeControl)
      Startet das Archivsystem
      Parameters:
      runtimeControl - Laufzeit-Umgebung, zur Abfrage von Systemzeit, Spezialeinstellungen für Tests usw., im produktiven Betrieb ein SystemRuntimeControl.
    • getRuntimeControl

      public RuntimeControl getRuntimeControl()
      Description copied from interface: TaskManagerInterface
      Gibt die aktuelle Laufzeitsteuerung zurück. Falls das System noch nicht voll initialisiert ist, wird null zurückgegeben.
      Specified by:
      getRuntimeControl in interface TaskManagerInterface
      Returns:
      die aktuelle Laufzeitsteuerung
    • countDataInQueues

      public long countDataInQueues()
      Specified by:
      countDataInQueues in interface TaskManagerInterface
    • estimateQueueMemoryUsage

      public long estimateQueueMemoryUsage()
      Specified by:
      estimateQueueMemoryUsage in interface TaskManagerInterface
    • suspendTaskIfNecessary

      public void suspendTaskIfNecessary(Task task) throws InterruptedException
      Description copied from interface: TaskManagerInterface
      Die Methode blockiert und hält damit den aufrufenden Task an, wenn dies (z. B. wegen Überlastung) notwendig ist.
      Specified by:
      suspendTaskIfNecessary in interface TaskManagerInterface
      Parameters:
      task - Task
      Throws:
      InterruptedException - Unterbrochen beim Anhalten
    • connectToDavQuit

      public void connectToDavQuit()
      Verbindet sich zum datenverteiler, wenn dabei ein Fehler auftritt, wird das System beendet.
    • checkPersistenceDir

      public void checkPersistenceDir(ScanMode mode)
      Prüft das Persistenzverzeichnis auf fremde Dateien und Verzeichnisse und falsche Reihenfolgen von ID-Verzeichnissen. Die Ergebnisse werden über den Logger protokolliert. Kann durch einen Kommandozeilenparameter beim Systemstart aufgerufen werden.
      Parameters:
      mode - Scan-Modus
    • quit

      public void quit()
      Fährt das ArS herunter und beendet die VM.
    • quitNoExit

      public void quitNoExit()
      Fährt das ArS herunter, ohne die VM zu beenden (dies ist bei Fernsteuerung des ArS aus JUnit-Tests notwendig).
    • quitError

      public void quitError(String msg)
      Fährt das ArS mit einer Fehlermeldung herunter und beendet die VM.
      Parameters:
      msg - Fehlermeldung
    • quitErrorNoExit

      public void quitErrorNoExit(String msg)
      Fährt das ArS mit einer Fehlermeldung herunter.
      Parameters:
      msg - Fehlermeldung
    • main

      public static void main(String[] args)
      Startpunkt des Archivsystems.
      Parameters:
      args - Kommandozeilenparameter
    • getArchivConfig

      public ArchivConfig getArchivConfig()
    • getInQueuesMgr

      public InQueuesMgr getInQueuesMgr()
    • getTaskScheduler

      public TaskScheduler getTaskScheduler()
    • getSimulationMgr

      public SimulationManager getSimulationMgr()
      Returns:
      Liefert den SimulationsManager.
    • getMaximumQueriesPerApplication

      public int getMaximumQueriesPerApplication()
    • getOriginalCommandLineArguments

      public List<String> getOriginalCommandLineArguments()
      Returns:
      Liefert die original Command Line Argumente als unmodifiableList von String Objekten.
    • increaseArchiveQueryCountForApplication

      public int increaseArchiveQueryCountForApplication(de.bsvrz.dav.daf.main.config.SystemObject application)
      Erhöht für eine Applikation die Anzahl der gleichzeitigen Anfragen um 1.
      Parameters:
      application - Applikation
      Returns:
      Neue Anzahl der gleichzeitigen Anfragen
    • decreaseArchiveQueryCountForApplication

      public void decreaseArchiveQueryCountForApplication(de.bsvrz.dav.daf.main.config.SystemObject application)
      Erniedrigt für eine Applikation die Anzahl der gleichzeitigen Anfragen um 1.
      Parameters:
      application - Applikation
    • getArchiveQueryCountForApplication

      public int getArchiveQueryCountForApplication(de.bsvrz.dav.daf.main.config.SystemObject application)
      Gibt die aktuelle Anzahl der gleichzeitigen Anfragen für eine Applikation zurück
      Parameters:
      application - Applikation
      Returns:
      Anzahl
    • getNumCloseIndexThreads

      public int getNumCloseIndexThreads()
      Anzahl Threads fürs Index-Schließen beim Beenden
      Specified by:
      getNumCloseIndexThreads in interface TaskManagerInterface
      Returns:
      Vom Benutzer vorgegebener Wert
    • getNumCheckPersistenceThreads

      public int getNumCheckPersistenceThreads()
      Anzahl Threads für Persistenz-Prüfung und Wiederherstellung
      Specified by:
      getNumCheckPersistenceThreads in interface TaskManagerInterface
      Returns:
      Vom Benutzer vorgegebener Wert
    • getPersistenceManager

      public PersistenceManager getPersistenceManager()
      Description copied from interface: TaskManager
      Gibt den PersistenzManager zurück.
      Specified by:
      getPersistenceManager in interface TaskManager
      Returns:
      den PersistenzManager
    • getNumOfArchTasks

      public int getNumOfArchTasks()
      Anzahl Archivierungstasks
      Returns:
      Vom Benutzer vorgegebener Wert
    • getNumDeleteThreads

      public int getNumDeleteThreads()
      Anzahl Threads fürs Löschen
      Returns:
      Vom Benutzer vorgegebener Wert
    • archiveIsReady

      public void archiveIsReady()
      Wird von ArchiveConfig ausgeführt, wenn alle Daten initial angemeldet wurden.
    • getIndexCacheMaxSize

      public int getIndexCacheMaxSize()
      Specified by:
      getIndexCacheMaxSize in interface TaskManagerInterface
    • getRebuildMode

      public RebuildMode getRebuildMode()
    • simulatePermanentDelete

      public boolean simulatePermanentDelete()
      Gibt true zurück, wenn das permanente Löschen nru simuliert wird.
      Returns:
      true, wenn das permanente Löschen nru simuliert wird, sonst false
    • togglePermanentDelete

      public void togglePermanentDelete()
      Ändert die eigentschaft, ob das permanente Löschen aktiv ist oder nur simuliert wird.