Klasse ArchiveManager

java.lang.Object
de.bsvrz.sys.funclib.losb.DAVAppBase
de.bsvrz.ars.ars.mgmt.ArchiveManager
Alle implementierten Schnittstellen:
TaskManager, TaskManagerInterface, de.bsvrz.dav.daf.main.ApplicationCloseActionHandler

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

    • ArchiveManager

      public ArchiveManager(String[] args) throws Exception
      Haupt-Konstruktor des Archivsystems
      Parameter:
      args - Kommandozeilen-Argumente
      Löst aus:
      Exception - Fehler bei Initialisierung
  • Methodendetails

    • 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.
      Parameter:
      archivePath - Wurzelverzeichnis des Archivsystems
      silent - Sollen hilfreiche Debug-Ausgaben gemacht werden?
      Gibt zurück:
      entweder ein WeekDomain-Objekt oder null, falls das Persistenzverzeichnis das alte Format hat
      Löst aus:
      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
      Gibt zurück:
      das Archiv-Objekt
    • getDataModel

      @Nullable public de.bsvrz.dav.daf.main.config.DataModel getDataModel()
      Setzt außer Kraft:
      getDataModel in Klasse de.bsvrz.sys.funclib.losb.DAVAppBase
    • wasTerminated

      public boolean wasTerminated()
      Gibt true zurück, wenn das Archivsystem sich gerade beendet.
      Angegeben von:
      wasTerminated in Schnittstelle TaskManagerInterface
      Gibt zurück:
      true, wenn das Archivsystem sich gerade beendet, sonst false
    • run

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

      public RuntimeControl getRuntimeControl()
      Beschreibung aus Schnittstelle kopiert: TaskManagerInterface
      Gibt die aktuelle Laufzeitsteuerung zurück. Falls das System noch nicht voll initialisiert ist, wird null zurückgegeben.
      Angegeben von:
      getRuntimeControl in Schnittstelle TaskManagerInterface
      Gibt zurück:
      die aktuelle Laufzeitsteuerung
    • countDataInQueues

      public long countDataInQueues()
      Angegeben von:
      countDataInQueues in Schnittstelle TaskManagerInterface
    • estimateQueueMemoryUsage

      public long estimateQueueMemoryUsage()
      Angegeben von:
      estimateQueueMemoryUsage in Schnittstelle TaskManagerInterface
    • suspendTaskIfNecessary

      public void suspendTaskIfNecessary(Task task) throws InterruptedException
      Beschreibung aus Schnittstelle kopiert: TaskManagerInterface
      Die Methode blockiert und hält damit den aufrufenden Task an, wenn dies (z. B. wegen Überlastung) notwendig ist.
      Angegeben von:
      suspendTaskIfNecessary in Schnittstelle TaskManagerInterface
      Parameter:
      task - Task
      Löst aus:
      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.
      Parameter:
      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.
      Parameter:
      msg - Fehlermeldung
    • quitErrorNoExit

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

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

      public ArchivConfig getArchivConfig()
    • getInQueuesMgr

      public InQueuesMgr getInQueuesMgr()
    • getTaskScheduler

      public TaskScheduler getTaskScheduler()
    • getSimulationMgr

      public SimulationManager getSimulationMgr()
      Gibt zurück:
      Liefert den SimulationsManager.
    • getMaximumQueriesPerApplication

      public int getMaximumQueriesPerApplication()
    • getOriginalCommandLineArguments

      public List<String> getOriginalCommandLineArguments()
      Gibt zurück:
      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.
      Parameter:
      application - Applikation
      Gibt zurück:
      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.
      Parameter:
      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
      Parameter:
      application - Applikation
      Gibt zurück:
      Anzahl
    • getNumCloseIndexThreads

      public int getNumCloseIndexThreads()
      Anzahl Threads fürs Index-Schließen beim Beenden
      Angegeben von:
      getNumCloseIndexThreads in Schnittstelle TaskManagerInterface
      Gibt zurück:
      Vom Benutzer vorgegebener Wert
    • getNumCheckPersistenceThreads

      public int getNumCheckPersistenceThreads()
      Anzahl Threads für Persistenz-Prüfung und Wiederherstellung
      Angegeben von:
      getNumCheckPersistenceThreads in Schnittstelle TaskManagerInterface
      Gibt zurück:
      Vom Benutzer vorgegebener Wert
    • getPersistenceManager

      public PersistenceManager getPersistenceManager()
      Beschreibung aus Schnittstelle kopiert: TaskManager
      Gibt den PersistenzManager zurück.
      Angegeben von:
      getPersistenceManager in Schnittstelle TaskManager
      Gibt zurück:
      den PersistenzManager
    • getNumOfArchTasks

      public int getNumOfArchTasks()
      Anzahl Archivierungstasks
      Gibt zurück:
      Vom Benutzer vorgegebener Wert
    • getNumDeleteThreads

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

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

      public int getIndexCacheMaxSize()
      Angegeben von:
      getIndexCacheMaxSize in Schnittstelle TaskManagerInterface
    • getRebuildMode

      public RebuildMode getRebuildMode()
    • simulatePermanentDelete

      public boolean simulatePermanentDelete()
      Gibt true zurück, wenn das permanente Löschen nru simuliert wird.
      Gibt zurück:
      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.