Interface PersistenceDirectoryManager
- All Superinterfaces:
DataGapManager
- All Known Implementing Classes:
SingletonPersistenceDirectoryManager
,TimeBasedPersistenceDirectoryManager
Verwaltung von mehreren (zeitlich getrennten) Persistenzverzeichnissen
-
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.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 ArchivzeitMethods inherited from interface de.bsvrz.ars.ars.persistence.iter.DataGapManager
isRangeUnavailable
-
Method Details
-
updatePersistenceDirectories
void updatePersistenceDirectories(long archTime) throws IOException, InterruptedException, PersistenceException Aktualisiert das aktive Persistenzverzeichnis basierend auf der aktuellen Archivzeit- Parameters:
archTime
- aktuelle Archivzeit (Millis seit Epoch)- Throws:
IOException
- IO-FehlerInterruptedException
- Unterbrochen beim Einrichten des neuen PersistenzverzeichnissesPersistenceException
- Allgemeiner Persistenzfehler
-
getActivePersistenceDirectory
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.- Returns:
- Aktives Persistenzverzeichnis
-
getPersistenceDirectories
List<? extends PersistenceDirectory> getPersistenceDirectories(int simVariant, SequenceSpecification sequenceSpecification) 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!
- Parameters:
simVariant
- SimulationsvariantesequenceSpecification
- Zeitspezifikation- Returns:
- Collection mit Persistenzverzeichnissen, die zurückgegebene Liste ist immutable.
-
getSimulationPersistenceDirectory
Gibt das Persistenzverzeichnis zurück, das von einer speziellen Simulation verwendet wird- Parameters:
simVariant
- Simulationsvariante (> 0)- Returns:
- zugehöriges Persistenzverzeichnis oder null (wenn keines existiert).
-
getRootPath
Gibt das Wurzelverzeichnis der Persistenz zurück, unter dem die weiteren Persistenzverzeichnisse (je Zeitbereich) angelegt werden.- Returns:
- Wurzelverzeichnis, nicht null
-
initialize
void initialize() throws IOException, InterruptedException, PersistenceException, DirectoryIsLockedExceptionInitialisiert die Verzeichnisverwaltung und lädt z. B. die vorhandenen Verzeichnisse ein- Throws:
IOException
- Dateisystem-LesefehlerInterruptedException
- UnterbrochenPersistenceException
- Persistenz fehlerDirectoryIsLockedException
- Persistenzverzeichnis ist bereits gelockt (isActive-Datei existiert)
-
shutDown
void shutDown()Terminiert die Verzeichnisverwaltung, markiert die Verzeichnisse nicht mehr als benutzt und löscht alle Lock-Dateien. -
createSimulationDirectory
Erstellt für die angegebene Simulationsvariante das Persistenzverzeichnis. Sollte bereits ein Verzeichnis existieren, wird es zurückgegeben.- Parameters:
simVariant
- Simulationsvariante (größer 0)- Returns:
- Zugehöriges Persistenzverzeichnis
-
deleteSimulationDirectory
Löscht ein Verzeichnis einer Simulation- Parameters:
directory
- Persistenzverzeichnis der Simulation
-
getGapFilePath
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.- Parameters:
dataIdentification
- Datenidentifikation- Returns:
- Ein Dateipfad
-