Klasse SingletonPersistenceDirectoryManager
java.lang.Object
de.bsvrz.ars.ars.persistence.directories.mgmt.SingletonPersistenceDirectoryManager
- Alle implementierten Schnittstellen:
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.
-
Konstruktorübersicht
KonstruktorenKonstruktorBeschreibungSingletonPersistenceDirectoryManager(ContainerCreator containerCreator, Path rootPath) Erstellt einen neuen SingletonPersistenceDirectoryManager. -
Methodenübersicht
Modifizierer und TypMethodeBeschreibungcreateSimulationDirectory(int simVariant) Erstellt für die angegebene Simulationsvariante das Persistenzverzeichnis.voidLö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 wirdvoidInitialisiert die Verzeichnisverwaltung und lädt z.booleanisRangeUnavailable(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.voidshutDown()Terminiert die Verzeichnisverwaltung, markiert die Verzeichnisse nicht mehr als benutzt und löscht alle Lock-Dateien.voidupdatePersistenceDirectories(long archTime) Aktualisiert das aktive Persistenzverzeichnis basierend auf der aktuellen Archivzeit
-
Konstruktordetails
-
SingletonPersistenceDirectoryManager
Erstellt einen neuen SingletonPersistenceDirectoryManager.- Parameter:
containerCreator- Interface der persistenzschicht, z. B. einPersistenceManager.rootPath- Wurzelverzeichnis
-
-
Methodendetails
-
updatePersistenceDirectories
public void updatePersistenceDirectories(long archTime) Beschreibung aus Schnittstelle kopiert:PersistenceDirectoryManagerAktualisiert das aktive Persistenzverzeichnis basierend auf der aktuellen Archivzeit- Angegeben von:
updatePersistenceDirectoriesin SchnittstellePersistenceDirectoryManager- Parameter:
archTime- aktuelle Archivzeit (Millis seit Epoch)
-
getActivePersistenceDirectory
Beschreibung aus Schnittstelle kopiert:PersistenceDirectoryManagerGibt 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.- Angegeben von:
getActivePersistenceDirectoryin SchnittstellePersistenceDirectoryManager- Gibt zurück:
- Aktives Persistenzverzeichnis
-
getPersistenceDirectories
public List<? extends PersistenceDirectory> getPersistenceDirectories(int simVariant, SequenceSpecification sequenceSpecification) Beschreibung aus Schnittstelle kopiert:PersistenceDirectoryManagerErmittelt 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!
- Angegeben von:
getPersistenceDirectoriesin SchnittstellePersistenceDirectoryManager- Parameter:
simVariant- SimulationsvariantesequenceSpecification- Zeitspezifikation- Gibt zurück:
- Collection mit Persistenzverzeichnissen, die zurückgegebene Liste ist immutable.
-
getRootPath
Beschreibung aus Schnittstelle kopiert:PersistenceDirectoryManagerGibt das Wurzelverzeichnis der Persistenz zurück, unter dem die weiteren Persistenzverzeichnisse (je Zeitbereich) angelegt werden.- Angegeben von:
getRootPathin SchnittstellePersistenceDirectoryManager- Gibt zurück:
- Wurzelverzeichnis, nicht null
-
initialize
Beschreibung aus Schnittstelle kopiert:PersistenceDirectoryManagerInitialisiert die Verzeichnisverwaltung und lädt z. B. die vorhandenen Verzeichnisse ein- Angegeben von:
initializein SchnittstellePersistenceDirectoryManager- Löst aus:
IOException- Dateisystem-LesefehlerDirectoryIsLockedException- Persistenzverzeichnis ist bereits gelockt (isActive-Datei existiert)
-
getSimulationPersistenceDirectory
Beschreibung aus Schnittstelle kopiert:PersistenceDirectoryManagerGibt das Persistenzverzeichnis zurück, das von einer speziellen Simulation verwendet wird- Angegeben von:
getSimulationPersistenceDirectoryin SchnittstellePersistenceDirectoryManager- Parameter:
simVariant- Simulationsvariante (> 0)- Gibt zurück:
- zugehöriges Persistenzverzeichnis oder null (wenn keines existiert).
-
createSimulationDirectory
Beschreibung aus Schnittstelle kopiert:PersistenceDirectoryManagerErstellt für die angegebene Simulationsvariante das Persistenzverzeichnis. Sollte bereits ein Verzeichnis existieren, wird es zurückgegeben.- Angegeben von:
createSimulationDirectoryin SchnittstellePersistenceDirectoryManager- Parameter:
simVariant- Simulationsvariante (größer 0)- Gibt zurück:
- Zugehöriges Persistenzverzeichnis
-
shutDown
public void shutDown()Beschreibung aus Schnittstelle kopiert:PersistenceDirectoryManagerTerminiert die Verzeichnisverwaltung, markiert die Verzeichnisse nicht mehr als benutzt und löscht alle Lock-Dateien.- Angegeben von:
shutDownin SchnittstellePersistenceDirectoryManager
-
deleteSimulationDirectory
Beschreibung aus Schnittstelle kopiert:PersistenceDirectoryManagerLöscht ein Verzeichnis einer Simulation- Angegeben von:
deleteSimulationDirectoryin SchnittstellePersistenceDirectoryManager- Parameter:
directory- Persistenzverzeichnis der Simulation
-
getGapFilePath
Beschreibung aus Schnittstelle kopiert:PersistenceDirectoryManagerGibt 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.- Angegeben von:
getGapFilePathin SchnittstellePersistenceDirectoryManager- Parameter:
dataIdentification- Datenidentifikation- Gibt zurück:
- Ein Dateipfad
-