Class SingletonPersistenceDirectoryManager
java.lang.Object
de.bsvrz.ars.ars.persistence.directories.mgmt.SingletonPersistenceDirectoryManager
- All Implemented Interfaces:
PersistenceDirectoryManager
,DataGapManager
public class SingletonPersistenceDirectoryManager
extends Object
implements PersistenceDirectoryManager
Implementierung von PersistenceDirectoryManager, die ein einzelnes Persistenz-(unter-)verzeichnis verwaltet.
Nur Simulationen werden in extra-Verzeichnisse ausgelagert, was nicht dem Verhalten des Alten Archivsystems vor
Version 5 entspricht. Dort waren Simulationen zusammen mit den normalen Daten im selben Verzeichnis.
-
Constructor Summary
ConstructorsConstructorDescriptionSingletonPersistenceDirectoryManager
(ContainerCreator containerCreator, Path rootPath) Erstellt einen neuen SingletonPersistenceDirectoryManager. -
Method Summary
Modifier and TypeMethodDescriptioncreateSimulationDirectory
(int simVariant) Erstellt für die angegebene Simulationsvariante das Persistenzverzeichnis.void
Löscht ein Verzeichnis einer SimulationGibt das Persistenzverzeichnis zurück, in das aktuell archiviert wird.getGapFilePath
(IdDataIdentification dataIdentification) Gibt den Pfad und Dateinamen einer Lückendatei für das Nachfordern zurück.List<? extends PersistenceDirectory>
getPersistenceDirectories
(int simVariant, SequenceSpecification sequenceSpecification) Ermittelt alle Persistenzverzeichnisse, die zur angegebenen Zeitspezifikation die zugehörigen Archivdaten enthält.Gibt das Wurzelverzeichnis der Persistenz zurück, unter dem die weiteren Persistenzverzeichnisse (je Zeitbereich) angelegt werden.getSimulationPersistenceDirectory
(int simVariant) Gibt das Persistenzverzeichnis zurück, das von einer speziellen Simulation verwendet wirdvoid
Initialisiert die Verzeichnisverwaltung und lädt z.boolean
isRangeUnavailable
(long fromArchiveTime, long toArchiveTime) Prüft, ob sich Teile des Persistenzverzeichnisses zwischen 2 Datensätzen nicht mehr im direkten Zugriff befinden, also ausgelagert oder gelöscht wurden.void
shutDown()
Terminiert die Verzeichnisverwaltung, markiert die Verzeichnisse nicht mehr als benutzt und löscht alle Lock-Dateien.void
updatePersistenceDirectories
(long archTime) Aktualisiert das aktive Persistenzverzeichnis basierend auf der aktuellen Archivzeit
-
Constructor Details
-
SingletonPersistenceDirectoryManager
Erstellt einen neuen SingletonPersistenceDirectoryManager.- Parameters:
containerCreator
- Interface der persistenzschicht, z. B. einPersistenceManager
.rootPath
- Wurzelverzeichnis
-
-
Method Details
-
updatePersistenceDirectories
public void updatePersistenceDirectories(long archTime) Description copied from interface:PersistenceDirectoryManager
Aktualisiert das aktive Persistenzverzeichnis basierend auf der aktuellen Archivzeit- Specified by:
updatePersistenceDirectories
in interfacePersistenceDirectoryManager
- Parameters:
archTime
- aktuelle Archivzeit (Millis seit Epoch)
-
getActivePersistenceDirectory
Description copied from interface:PersistenceDirectoryManager
Gibt das Persistenzverzeichnis zurück, in das aktuell archiviert wird. Kann null zurückgeben, z. B. während der Initialisierung oder während noch nichts archiviert wurde.- Specified by:
getActivePersistenceDirectory
in interfacePersistenceDirectoryManager
- Returns:
- Aktives Persistenzverzeichnis
-
getPersistenceDirectories
public List<? extends PersistenceDirectory> getPersistenceDirectories(int simVariant, SequenceSpecification sequenceSpecification) Description copied from interface:PersistenceDirectoryManager
Ermittelt alle Persistenzverzeichnisse, die zur angegebenen Zeitspezifikation die zugehörigen Archivdaten enthält.Achtung: Da bei Archivanfragen ggf. ein initialer Zustand und ein Nachfolgedatensatz (Gültigkeitsdauer des letzten Datensatzes) ermittelt werden muss, muss ein Aufrufer ggf. noch zusätzlich einen vorherigen oder nachfolgenden Container aus einem anderen Verzeichnis eigenständig ermitteln!
- Specified by:
getPersistenceDirectories
in interfacePersistenceDirectoryManager
- Parameters:
simVariant
- SimulationsvariantesequenceSpecification
- Zeitspezifikation- Returns:
- Collection mit Persistenzverzeichnissen, die zurückgegebene Liste ist immutable.
-
getRootPath
Description copied from interface:PersistenceDirectoryManager
Gibt das Wurzelverzeichnis der Persistenz zurück, unter dem die weiteren Persistenzverzeichnisse (je Zeitbereich) angelegt werden.- Specified by:
getRootPath
in interfacePersistenceDirectoryManager
- Returns:
- Wurzelverzeichnis, nicht null
-
initialize
Description copied from interface:PersistenceDirectoryManager
Initialisiert die Verzeichnisverwaltung und lädt z. B. die vorhandenen Verzeichnisse ein- Specified by:
initialize
in interfacePersistenceDirectoryManager
- Throws:
IOException
- Dateisystem-LesefehlerDirectoryIsLockedException
- Persistenzverzeichnis ist bereits gelockt (isActive-Datei existiert)
-
getSimulationPersistenceDirectory
Description copied from interface:PersistenceDirectoryManager
Gibt das Persistenzverzeichnis zurück, das von einer speziellen Simulation verwendet wird- Specified by:
getSimulationPersistenceDirectory
in interfacePersistenceDirectoryManager
- Parameters:
simVariant
- Simulationsvariante (> 0)- Returns:
- zugehöriges Persistenzverzeichnis oder null (wenn keines existiert).
-
createSimulationDirectory
Description copied from interface:PersistenceDirectoryManager
Erstellt für die angegebene Simulationsvariante das Persistenzverzeichnis. Sollte bereits ein Verzeichnis existieren, wird es zurückgegeben.- Specified by:
createSimulationDirectory
in interfacePersistenceDirectoryManager
- Parameters:
simVariant
- Simulationsvariante (größer 0)- Returns:
- Zugehöriges Persistenzverzeichnis
-
shutDown
public void shutDown()Description copied from interface:PersistenceDirectoryManager
Terminiert die Verzeichnisverwaltung, markiert die Verzeichnisse nicht mehr als benutzt und löscht alle Lock-Dateien.- Specified by:
shutDown
in interfacePersistenceDirectoryManager
-
deleteSimulationDirectory
Description copied from interface:PersistenceDirectoryManager
Löscht ein Verzeichnis einer Simulation- Specified by:
deleteSimulationDirectory
in interfacePersistenceDirectoryManager
- Parameters:
directory
- Persistenzverzeichnis der Simulation
-
getGapFilePath
Description copied from interface:PersistenceDirectoryManager
Gibt den Pfad und Dateinamen einer Lückendatei für das Nachfordern zurück. In dieser Datei werden die bereits erhaltenen Datenlücken vermerkt, also wo erfolglos nachgefordert wurde, damit diese nicht sinnloserweise neu angefragt werden.- Specified by:
getGapFilePath
in interfacePersistenceDirectoryManager
- Parameters:
dataIdentification
- Datenidentifikation- Returns:
- Ein Dateipfad
-